Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Macabee

macrumors newbie
Original poster
Oct 24, 2007
8
0
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!"
foobar()

helloworld()
a = Something()
a.foo()

#!/usr/sbin/dtrace -ZCs

#pragma D option quiet

python$target:::function-entry,python$target:::function-return
{
printf("%s %s (%s:%d)\n", probename == "function-entry" ? "->" : "<-",
copyinstr(arg1), copyinstr(arg0), arg2);
}

-> <module> (foo.py:1)
-> Something (foo.py:1)
<- Something (foo.py:2)
-> helloworld (foo.py:8)
-> foobar (foo.py:5)
<- foobar (foo.py:6)
<- helloworld (foo.py:10)
-> foo (foo.py:2)
<- foo (foo.py:3)
<- <module> (foo.py:14)

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.
 
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.
 
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.