All pastes #747879 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-10-24 12:52 UTC
rendered paste body
dtrace in PHP on OSX (yes you CAN do it :P)

Take one script:

<?php
function blastoff()
{
        echo "Blastoff!\n\n";
}

function one()
{
        echo "One...\n";
        blastoff();
}

function two()
{
        echo "Two...\n";
        one();
}

function three()
{
        echo "Three...\n";
        two();
}

function launch()
{
        three();
}

while (1)
{
        launch();
        sleep(1);
}
?>

Run it in a terminal - open up another... and...

Macintosh:dtrace-1.0.3+fix lpackham$ uname -a
Darwin Macintosh.local 9.0.0 Darwin Kernel Version 9.0.0: Tue Oct  9 21:35:55 PDT 2007; root:xnu-1228~1/RELEASE_I386 i386 i386
Macintosh:dtrace-1.0.3+fix lpackham$ dtrace -n function-entry'{printf("called %s() in %s at line %d\n", copyinstr(arg0), copyinstr(arg1), arg2)}' -q
dtrace: failed to initialize dtrace: DTrace requires additional privileges
Macintosh:dtrace-1.0.3+fix lpackham$ sudo dtrace -n function-entry'{printf("called %s() in %s at line %d\n", copyinstr(arg0), copyinstr(arg1), arg2)}' -q
Password:
called () in /Users/lpackham/blastoff.php at line 0
called launch() in /Users/lpackham/blastoff.php at line 32
called three() in /Users/lpackham/blastoff.php at line 27
called two() in /Users/lpackham/blastoff.php at line 22
called one() in /Users/lpackham/blastoff.php at line 16
called blastoff() in /Users/lpackham/blastoff.php at line 10
called sleep() in /Users/lpackham/blastoff.php at line 33
called launch() in /Users/lpackham/blastoff.php at line 32
called three() in /Users/lpackham/blastoff.php at line 27
called two() in /Users/lpackham/blastoff.php at line 22
called one() in /Users/lpackham/blastoff.php at line 16
called blastoff() in /Users/lpackham/blastoff.php at line 10
called sleep() in /Users/lpackham/blastoff.php at line 33
called launch() in /Users/lpackham/blastoff.php at line 32
called three() in /Users/lpackham/blastoff.php at line 27
called two() in /Users/lpackham/blastoff.php at line 22
called one() in /Users/lpackham/blastoff.php at line 16
called blastoff() in /Users/lpackham/blastoff.php at line 10
called sleep() in /Users/lpackham/blastoff.php at line 33
called launch() in /Users/lpackham/blastoff.php at line 32
called three() in /Users/lpackham/blastoff.php at line 27
called two() in /Users/lpackham/blastoff.php at line 22
called one() in /Users/lpackham/blastoff.php at line 16
called blastoff() in /Users/lpackham/blastoff.php at line 10
called sleep() in /Users/lpackham/blastoff.php at line 33
called launch() in /Users/lpackham/blastoff.php at line 32
called three() in /Users/lpackham/blastoff.php at line 27
called two() in /Users/lpackham/blastoff.php at line 22
called one() in /Users/lpackham/blastoff.php at line 16
called blastoff() in /Users/lpackham/blastoff.php at line 10
called sleep() in /Users/lpackham/blastoff.php at line 33