mirror of
https://github.com/python/cpython.git
synced 2025-08-04 17:08:35 +00:00
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.
This commit is contained in:
parent
39b42ae8db
commit
a785c87d6e
31 changed files with 1305 additions and 18 deletions
19
Include/pydtrace.d
Normal file
19
Include/pydtrace.d
Normal file
|
@ -0,0 +1,19 @@
|
|||
/* 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
|
Loading…
Add table
Add a link
Reference in a new issue