I think there are several things at play here. I don't think there is a ruby provider (anymore). Ruby probes will only be available if you run or have a running ruby process. For example:
sudo dtrace -c 'ruby -v' -l -m ruby
creates the following output on my system:
ID PROVIDER MODULE FUNCTION NAME
315346 ruby85332 ruby empty_ary_alloc array-create
315347 ruby85332 ruby ary_new array-create
315348 ruby85332 ruby vm_call_cfunc cmethod-entry
315349 ruby85332 ruby vm_call0_body cmethod-entry
315350 ruby85332 ruby vm_exec_core cmethod-entry
Note, the provider is 'ruby85332' where '85332' is the process id. So you have a different provider for each ruby process.
Regarding rvm
, enabling dtrace is the default. So --enable-dtrace
in
`rvm install ruby-2.0.0 --enable-dtrace`
is really not needed. On the other hand, if you are working on a machine where dtrace
requires root/sudo privileges, the dtrace probes will still not compiled, since the compilation process cannot call dtrace
.
Personally I have the SUID flag set on the dtrace
executable. In my world this should work and I can indeed see in the compilation log that the install process tries to compile the dtrace probes. However, the build still fails with some error regarding 'dev/fd'. What worked for me was to use a pre-compiled version of the ruby vm via rvm mount
. For example:
rvm mount -r https://rvm.io/binaries/osx/10.10/x86_64/ruby-2.0.0-p451.tar.bz2
The ruby installed via the command above is also the one I used to create the sample probe listing.