As of patch 32953 dtrace support is in bleadperl (5.11.0). The probes are based on Alan Burlinson's original blog post on the subject:

    http://blogs.sun.com/alanbur/date/20050909

By guarding the probes with PERL_SUB_*_ENABLED the performance hit is unmeasurable.

All the necessary bits already existed in the wild. I just assembled them and made the necessary changes to Perl's Configure script. The patched Perl works with the examples in DTraceToolkit.

Currently we have probes on subroutine entry and return.

Next I'd like to solicit input about what other probes would be useful. I have Sven Dowideit's patch that adds probes on new__sv, del__sv (creation and deletion of values) and, main__enter, main__exit (interpreter lifecycle) and load__module (require, use etc).

Where else might we usefully probe? What would people find useful?

-- notes --

I'm crossposting this to what I hope are a few interested lists. If anyone reading this needs a primer on dtrace this video is highly recommended:

  http://video.google.com/videoplay?docid=-8002801113289007228

It's 90 minutes of your life but it'll be time well spent :)

If anyone would like to try bleadperl it is available here:

rsync -avz --exclude .svn/ --delete \
   rsync://ftp.linux.activestate.com/perl-current/ bleadperl

You can configure it like this:

./Configure -de -Dusedevel -Dinc_version_list=none \
    -Dprefix=$install -Dldflags=-Dman3ext=3pm \
    -Duseithreads -Duseshrplib -Uversiononly \
    -Dusedtrace

where $install is your preferred install base.

Right now ./Configure displays a harmless error about '!' being an unknown command just after the questions. There's a patch in the pipeline to fix that.

--
Andy Armstrong, Hexten




Reply via email to