diff --git a/cop.h b/cop.h index 0a6169bc49..939d1ffca3 100644 --- a/cop.h +++ b/cop.h @@ -617,7 +617,8 @@ struct block_format { #define PUSHSUB_BASE(cx) \ ENTRY_PROBE(GvENAME(CvGV(cv)), \ CopFILE((const COP *)CvSTART(cv)), \ - CopLINE((const COP *)CvSTART(cv))); \ + CopLINE((const COP *)CvSTART(cv)), \ + CopSTASHPV((const COP *)CvSTART(cv))); \ \ cx->blk_sub.cv = cv; \ cx->blk_sub.olddepth = CvDEPTH(cv); \ @@ -667,7 +668,8 @@ struct block_format { STMT_START { \ RETURN_PROBE(GvENAME(CvGV((const CV*)cx->blk_sub.cv)), \ CopFILE((COP*)CvSTART((const CV*)cx->blk_sub.cv)), \ - CopLINE((COP*)CvSTART((const CV*)cx->blk_sub.cv))); \ + CopLINE((COP*)CvSTART((const CV*)cx->blk_sub.cv)), \ + CopSTASHPV((COP*)CvSTART((const CV*)cx->blk_sub.cv))); \ \ if (CxHASARGS(cx)) { \ POP_SAVEARRAY(); \ diff --git a/mydtrace.h b/mydtrace.h index daabcfa0b9..75e6918015 100644 --- a/mydtrace.h +++ b/mydtrace.h @@ -13,21 +13,21 @@ # include "perldtrace.h" -# define ENTRY_PROBE(func, file, line) \ - if (PERL_SUB_ENTRY_ENABLED()) { \ - PERL_SUB_ENTRY(func, file, line); \ +# define ENTRY_PROBE(func, file, line, stash) \ + if (PERL_SUB_ENTRY_ENABLED()) { \ + PERL_SUB_ENTRY(func, file, line, stash); \ } -# define RETURN_PROBE(func, file, line) \ - if (PERL_SUB_RETURN_ENABLED()) { \ - PERL_SUB_RETURN(func, file, line); \ +# define RETURN_PROBE(func, file, line, stash) \ + if (PERL_SUB_RETURN_ENABLED()) { \ + PERL_SUB_RETURN(func, file, line, stash); \ } #else /* NOPs */ -# define ENTRY_PROBE(func, file, line) -# define RETURN_PROBE(func, file, line) +# define ENTRY_PROBE(func, file, line, stash) +# define RETURN_PROBE(func, file, line, stash) #endif diff --git a/perldtrace.d b/perldtrace.d index c5844eac88..5175f249b1 100644 --- a/perldtrace.d +++ b/perldtrace.d @@ -4,8 +4,8 @@ */ provider perl { - probe sub__entry(char *, char *, int); - probe sub__return(char *, char *, int); + probe sub__entry(char *, char *, int, char *); + probe sub__return(char *, char *, int, char *); }; /*