[Python-Dev] DTRACE support

Charles-François Natali cf.natali at gmail.com
Fri Sep 6 17:29:12 CEST 2013


> As far as I know, Erlang, Ruby, PHP, Perl, etc., support Dtrace.
> Python is embarrasingly missing from this list.
>
> Some examples:
>
> <http://crypt.codemancers.com/posts/2013-04-16-profile-ruby-apps-dtrace-part1/>
> <http://www.phpdeveloper.org/news/18859>
> <http://www.erlang.org/doc/apps/runtime_tools/DTRACE.html>
>
> I have spend a very long time on a patch for Dtrace support in most
> platforms with dtrace available. Currently working under Solaris and
> derivatives, and MacOS X. Last time I checked, it would crash FreeBSD
> because bugs in the dtrace port, but that was a long time ago.
>
> I would like to push this to Python 3.4, and the window is going to be
> closed soon, so I think this is the time to ask for opinions and
> support here.
>
> Does Python-Dev have any opinion or interest in this project?. Should
> I push for it?

IMO, that's a large, intrusive patch, which distracts the reader from
the main code and logic.

Here's an extract from Modules/gcmodule.c:

static void
dtrace_gc_done(Py_ssize_t value)
{
PYTHON_GC_DONE((long) value);
/*
* Currently a USDT tail-call will not receive the correct arguments.
* Disable the tail call here.
*/
#if defined(__sparc)
asm("nop");
#endif
}

Also have a look at cevalc.c:
http://bugs.python.org/review/13405/diff/6152/Python/ceval.c


IMO it's not worth it (personally strace/gdb/valgrind are more than
enough for me, and we''re about to gain memory tracing with Victor's
tracemalloc).

cf


More information about the Python-Dev mailing list