diff options
Diffstat (limited to 'cop.h')
-rw-r--r-- | cop.h | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -132,6 +132,7 @@ typedef struct jmpenv JMPENV; #define CATCH_SET(v) (PL_top_env->je_mustcatch = (v)) +#include "mydtrace.h" struct cop { BASEOP @@ -295,6 +296,10 @@ struct block_sub { * decremented by LEAVESUB, the other by LEAVE. */ #define PUSHSUB_BASE(cx) \ + ENTRY_PROBE(GvENAME(CvGV(cv)), \ + CopFILE((COP*)CvSTART(cv)), \ + CopLINE((COP*)CvSTART(cv))); \ + \ cx->blk_sub.cv = cv; \ cx->blk_sub.olddepth = CvDEPTH(cv); \ cx->blk_sub.hasargs = hasargs; \ @@ -342,6 +347,10 @@ struct block_sub { #define POPSUB(cx,sv) \ STMT_START { \ + RETURN_PROBE(GvENAME(CvGV((CV*)cx->blk_sub.cv)), \ + CopFILE((COP*)CvSTART((CV*)cx->blk_sub.cv)), \ + CopLINE((COP*)CvSTART((CV*)cx->blk_sub.cv))); \ + \ if (cx->blk_sub.hasargs) { \ POP_SAVEARRAY(); \ /* abandon @_ if it got reified */ \ |