Please sign in to comment.
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)
- Loading branch information...
Showing with 4,109 additions and 4,242 deletions.
- +1,080 −0 erts/emulator/beam/erl_nif.c
- +9 −0 erts/emulator/beam/erl_nif.h
- +2,910 −0 erts/emulator/beam/erlang_dtrace.d
- +4 −3,111 lib/runtime_tools/c_src/dtrace_user.d
- +7 −1,129 lib/runtime_tools/c_src/dyntrace.c
- +44 −0 lib/runtime_tools/examples/user-probe-n.d
- +53 −0 lib/runtime_tools/examples/user-probe-n.systemtap
- +2 −2 lib/runtime_tools/examples/user-probe.systemtap
Oops, something went wrong.