cpython/Include/pydtrace.d
Łukasz Langa a785c87d6e 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.
2016-09-09 17:37:37 -07:00

20 lines
863 B
D

/* Python DTrace provider */
provider python {
probe function__entry(const char *, const char *, int);
probe function__return(const char *, const char *, int);
probe instance__new__start(const char *, const char *);
probe instance__new__done(const char *, const char *);
probe instance__delete__start(const char *, const char *);
probe instance__delete__done(const char *, const char *);
probe line(const char *, const char *, int);
probe gc__start(int);
probe gc__done(long);
};
#pragma D attributes Evolving/Evolving/Common provider python provider
#pragma D attributes Evolving/Evolving/Common provider python module
#pragma D attributes Evolving/Evolving/Common provider python function
#pragma D attributes Evolving/Evolving/Common provider python name
#pragma D attributes Evolving/Evolving/Common provider python args