summaryrefslogtreecommitdiff
path: root/probes_helper.h
diff options
context:
space:
mode:
authorngoto <ngoto@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-18 16:30:10 (GMT)
committerngoto <ngoto@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-11-18 16:30:10 (GMT)
commit979dff3ee48c2bc26ca9ac817425e2b073e12d73 (patch)
treeae07636a95196a6dd7e3ce03f73235e25c9fc0d0 /probes_helper.h
parent2630ad09bd6f959b0379adfba84a6c7b4e4958ff (diff)
* vm_core.h, probes_helper.h (RUBY_DTRACE_FUNC_ENTRY_HOOK,
RUBY_DTRACE_FUNC_RETURN_HOOK): move from vm_core.h to new file probes_helper.h for narrowing dependency to probes.h. * common.mk (VM_CORE_H_INCLUDES): remove dependency to probes.h. * common.mk (vm.$(OBJEXT)): add dependency to probes_helper.h. * vm.c, vm_insnhelper.c: include probes_helper.h. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37711 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'probes_helper.h')
-rw-r--r--probes_helper.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/probes_helper.h b/probes_helper.h
new file mode 100644
index 0000000..9324cb8
--- /dev/null
+++ b/probes_helper.h
@@ -0,0 +1,35 @@
+#ifndef RUBY_PROBES_HELPER_H
+#define RUBY_PROBES_HELPER_H
+
+#include "ruby/ruby.h"
+#include "probes.h"
+
+#define RUBY_DTRACE_FUNC_ENTRY_HOOK(klass, id) \
+ if (RUBY_DTRACE_FUNCTION_ENTRY_ENABLED()) { \
+ const char * classname = rb_class2name((klass)); \
+ const char * methodname = rb_id2name((id)); \
+ const char * filename = rb_sourcefile(); \
+ if (classname && methodname && filename) { \
+ RUBY_DTRACE_FUNCTION_ENTRY( \
+ classname, \
+ methodname, \
+ filename, \
+ rb_sourceline()); \
+ } \
+ } \
+
+#define RUBY_DTRACE_FUNC_RETURN_HOOK(klass, id) \
+ if (RUBY_DTRACE_FUNCTION_RETURN_ENABLED()) { \
+ const char * classname = rb_class2name((klass)); \
+ const char * methodname = rb_id2name((id)); \
+ const char * filename = rb_sourcefile(); \
+ if (classname && methodname && filename) { \
+ RUBY_DTRACE_FUNCTION_RETURN( \
+ classname, \
+ methodname, \
+ filename, \
+ rb_sourceline()); \
+ } \
+ } \
+
+#endif /* RUBY_PROBES_HELPER_H */