]> granicus.if.org Git - python/commit
DTrace support: function calls, GC activity, line execution
authorŁukasz Langa <lukasz@langa.pl>
Sat, 10 Sep 2016 00:37:37 +0000 (17:37 -0700)
committerŁukasz Langa <lukasz@langa.pl>
Sat, 10 Sep 2016 00:37:37 +0000 (17:37 -0700)
commita785c87d6eacbed81543a8afe3cb098fabb9610a
treeee127bbbef66a386f4c7f7a21d1e69a54eed5a52
parent39b42ae8dbf81ee89dabf1c418c9081243b4ab97
DTrace support: function calls, GC activity, line execution

Tested on macOS 10.11 dtrace, Ubuntu 16.04 SystemTap, and libbcc.

Largely based by an initial patch by Jesús Cea Avión, with some
influence from Dave Malcolm's SystemTap patch and Nikhil Benesch's
unification patch.

Things deliberately left out for simplicity:
- ustack helpers, I have no way of testing them at this point since
they are Solaris-specific
- PyFrameObject * in function__entry/function__return, this is
SystemTap-specific
- SPARC support
- dynamic tracing
- sys module dtrace facility introspection

All of those might be added later.
31 files changed:
.hgignore
Doc/howto/index.rst
Doc/howto/instrumentation.rst [new file with mode: 0644]
Doc/whatsnew/3.6.rst
Include/pydtrace.d [new file with mode: 0644]
Include/pydtrace.h [new file with mode: 0644]
Lib/test/dtracedata/assert_usable.d [new file with mode: 0644]
Lib/test/dtracedata/assert_usable.stp [new file with mode: 0644]
Lib/test/dtracedata/call_stack.d [new file with mode: 0644]
Lib/test/dtracedata/call_stack.d.expected [new file with mode: 0644]
Lib/test/dtracedata/call_stack.py [new file with mode: 0644]
Lib/test/dtracedata/call_stack.stp [new file with mode: 0644]
Lib/test/dtracedata/call_stack.stp.expected [new file with mode: 0644]
Lib/test/dtracedata/gc.d [new file with mode: 0644]
Lib/test/dtracedata/gc.d.expected [new file with mode: 0644]
Lib/test/dtracedata/gc.py [new file with mode: 0644]
Lib/test/dtracedata/gc.stp [new file with mode: 0644]
Lib/test/dtracedata/gc.stp.expected [new file with mode: 0644]
Lib/test/dtracedata/instance.py [new file with mode: 0644]
Lib/test/dtracedata/line.d [new file with mode: 0644]
Lib/test/dtracedata/line.d.expected [new file with mode: 0644]
Lib/test/dtracedata/line.py [new file with mode: 0644]
Lib/test/test_dtrace.py [new file with mode: 0644]
Makefile.pre.in
Misc/ACKS
Misc/NEWS
Modules/gcmodule.c
Python/ceval.c
configure
configure.ac
pyconfig.h.in