diff options
author | Scott Lystig Fritchie <[email protected]> | 2012-08-17 03:24:20 -0500 |
---|---|---|
committer | Scott Lystig Fritchie <[email protected]> | 2012-08-17 04:39:36 -0500 |
commit | 75552bd3bb4e7f3cf4dab81a5c81cf73b1d3fb99 (patch) | |
tree | 58b9fbc507fbfe46aeee2311e7f308e8b70d7abf /lib/runtime_tools/examples/user-probe.systemtap | |
parent | f3c830eddc68d7269d4f48b13ddae40893929573 (diff) | |
download | otp-75552bd3bb4e7f3cf4dab81a5c81cf73b1d3fb99.tar.gz otp-75552bd3bb4e7f3cf4dab81a5c81cf73b1d3fb99.tar.bz2 otp-75552bd3bb4e7f3cf4dab81a5c81cf73b1d3fb99.zip |
Relocate bodies of DTrace probes to the statically-linked VM.
Due to various operating systems (in both the DTrace and SystemTap
worlds) not fully supporting DTrace probes (or SystemTap-compatibility
mode probes) in shared libraries, we relocate those probes to the
statically-linked virtual machine. This could be seen as pollution
of the pristine VM by a (yet) experimental feature. However:
1. This code can be eliminated completely by the C preprocessor.
2. Leaving the probes in the dyntrace NIF shared library simply
does not work correctly on too many platforms.
*Many* thanks to Macneil Shonle at Basho for assisting when my
RSI-injured fingers gave out.
Tested on:
* CentOS 5, SystemTap 1.3
* Solaris 10 (note)
* Solaris 11
* OpenIndiana 151
* SmartOS 20120809T221258Z
* FreeBSD 9.0-RELEASE (note)
I had hoped to be able to test CentOS 6 + SystemTap 1.7, but the
details of dealing with all dependencies for a 2.6.32-279.5.1.el6.x86_64
kernel are too time consuming right now.
(note: Solaris 10 and FreeBSD 9.0-RELEASE can take a long time to compile)
Diffstat (limited to 'lib/runtime_tools/examples/user-probe.systemtap')
-rw-r--r-- | lib/runtime_tools/examples/user-probe.systemtap | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/runtime_tools/examples/user-probe.systemtap b/lib/runtime_tools/examples/user-probe.systemtap index b41d7483ad..0482235324 100644 --- a/lib/runtime_tools/examples/user-probe.systemtap +++ b/lib/runtime_tools/examples/user-probe.systemtap @@ -28,12 +28,12 @@ * environment. */ -probe process("dyntrace.so").mark("user_trace-s1") +probe process("beam").mark("user_trace-s1") { printf("%s\n", user_string($arg1)); } -probe process("dyntrace.so").mark("user_trace-i4s4") +probe process("beam").mark("user_trace-i4s4") { printf("%s %s %d %d %d %d '%s' '%s' '%s' '%s'\n", user_string($arg1), |