Mac DTrace - Thanks for the breakage


macrumors newbie
Original poster
Oct 24, 2007
So Apple put DTrace into OSX Leopard. It's pretty cool. Have been playing with it for a large chunk of the day.

Of course - useless without enabling it some of the languages we all use (PHP, Python and Ruby).

So - I spent a while hacking it about with the source code....

Now I have things like:

class Something:
def foo(self):
print "In the class"

def foobar():
print "Nothing"

def helloworld():
print "Hello World!"

a = Something()
#!/usr/sbin/dtrace -ZCs

#pragma D option quiet

printf("%s %s (%s:%d)\n", probename == "function-entry" ? "->" : "<-",
copyinstr(arg1), copyinstr(arg0), arg2);
-> <module> (
-> Something (
<- Something (
-> helloworld (
-> foobar (
<- foobar (
<- helloworld (
-> foo (
<- foo (
<- <module> (
Would anybody be interested in the patches for the dtrace PEAR module for PHP and the MacPorts versions of Python and Ruby? Not sure if they'll accept the patches upstream - so I want to gauge whether people want that or not.


macrumors newbie
Original poster
Oct 24, 2007
Ruby - absolutely.
yeah the Ruby one by Joyenet appears to be broken on OSX. I have created a fix patch and the mini-site will go up shortly with all the details for patching/making dtrace work with these scripting languages.


macrumors 603
Jan 6, 2004
Western US
This sounds interesting. Can you explain how DTrace is different from other profiling tools? Does it integrate with compilers/debuggers or is it separate? Would it also be used for Objective-C/C/Cocoa?
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.