summaryrefslogtreecommitdiff
path: root/mydtrace.h
diff options
context:
space:
mode:
Diffstat (limited to 'mydtrace.h')
-rw-r--r--mydtrace.h89
1 files changed, 24 insertions, 65 deletions
diff --git a/mydtrace.h b/mydtrace.h
index 6e797676fa..6c66a08509 100644
--- a/mydtrace.h
+++ b/mydtrace.h
@@ -13,80 +13,39 @@
# include "perldtrace.h"
-# if defined(STAP_PROBE_ADDR) && !defined(DEBUGGING)
+# define PERL_DTRACE_PROBE_ENTRY(cv) \
+ if (PERL_SUB_ENTRY_ENABLED()) \
+ Perl_dtrace_probe_call(aTHX_ cv, TRUE);
-/* SystemTap 1.2 uses a construct that chokes on passing a char array
- * as a char *, in this case hek_key in struct hek. Workaround it
- * with a temporary.
- */
-
-# define ENTRY_PROBE(func, file, line, stash) \
- if (PERL_SUB_ENTRY_ENABLED()) { \
- const char *tmp_func = func; \
- PERL_SUB_ENTRY(tmp_func, file, line, stash); \
- }
-
-# define RETURN_PROBE(func, file, line, stash) \
- if (PERL_SUB_RETURN_ENABLED()) { \
- const char *tmp_func = func; \
- PERL_SUB_RETURN(tmp_func, file, line, stash); \
- }
-
-# define LOADING_FILE_PROBE(name) \
- if (PERL_LOADING_FILE_ENABLED()) { \
- const char *tmp_name = name; \
- PERL_LOADING_FILE(tmp_name); \
- }
-
-# define LOADED_FILE_PROBE(name) \
- if (PERL_LOADED_FILE_ENABLED()) { \
- const char *tmp_name = name; \
- PERL_LOADED_FILE(tmp_name); \
- }
-
-# else
-
-# 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, stash) \
- if (PERL_SUB_RETURN_ENABLED()) { \
- PERL_SUB_RETURN(func, file, line, stash); \
- }
-
-# define LOADING_FILE_PROBE(name) \
- if (PERL_LOADING_FILE_ENABLED()) { \
- PERL_LOADING_FILE(name); \
- }
+# define PERL_DTRACE_PROBE_RETURN(cv) \
+ if (PERL_SUB_ENTRY_ENABLED()) \
+ Perl_dtrace_probe_call(aTHX_ cv, FALSE);
-# define LOADED_FILE_PROBE(name) \
- if (PERL_LOADED_FILE_ENABLED()) { \
- PERL_LOADED_FILE(name); \
- }
+# define PERL_DTRACE_PROBE_FILE_LOADING(name) \
+ if (PERL_SUB_ENTRY_ENABLED()) \
+ Perl_dtrace_probe_load(aTHX_ name, TRUE);
-# endif
+# define PERL_DTRACE_PROBE_FILE_LOADED(name) \
+ if (PERL_SUB_ENTRY_ENABLED()) \
+ Perl_dtrace_probe_load(aTHX_ name, FALSE);
-# define OP_ENTRY_PROBE(name) \
- if (PERL_OP_ENTRY_ENABLED()) { \
- PERL_OP_ENTRY(name); \
- }
+# define PERL_DTRACE_PROBE_OP(op) \
+ if (PERL_OP_ENTRY_ENABLED()) \
+ Perl_dtrace_probe_op(aTHX_ op);
-# define PHASE_CHANGE_PROBE(new_phase, old_phase) \
- if (PERL_PHASE_CHANGE_ENABLED()) { \
- PERL_PHASE_CHANGE(new_phase, old_phase); \
- }
+# define PERL_DTRACE_PROBE_PHASE(phase) \
+ if (PERL_OP_ENTRY_ENABLED()) \
+ Perl_dtrace_probe_phase(aTHX_ phase);
#else
/* NOPs */
-# define ENTRY_PROBE(func, file, line, stash)
-# define RETURN_PROBE(func, file, line, stash)
-# define PHASE_CHANGE_PROBE(new_phase, old_phase)
-# define OP_ENTRY_PROBE(name)
-# define LOADING_FILE_PROBE(name)
-# define LOADED_FILE_PROBE(name)
+# define PERL_DTRACE_PROBE_ENTRY(cv)
+# define PERL_DTRACE_PROBE_RETURN(cv)
+# define PERL_DTRACE_PROBE_FILE_LOADING(cv)
+# define PERL_DTRACE_PROBE_FILE_LOADED(cv)
+# define PERL_DTRACE_PROBE_OP(op)
+# define PERL_DTRACE_PROBE_PHASE(phase)
#endif