35 lines
1.4 KiB
Plaintext
35 lines
1.4 KiB
Plaintext
Note on the License
|
|
Dan Williams <dcbw at redhat com> 2006-08-16
|
|
|
|
Since 'setup.py' specifies the "Python" license, it is assumed that the
|
|
threadframe package is distributed under that license, even though there
|
|
is no license header at the top of the source file.
|
|
|
|
|
|
|
|
Obtaining tracebacks on other threads in Python
|
|
===============================================
|
|
by Fazal Majid (www.majid.info), 2004-06-10
|
|
|
|
David Beazley added advanced debugging functions to the Python interpreter,
|
|
and they have been folded into the 2.2 release. Guido van Rossum added in
|
|
Python 2.3 the thread ID to the interpreter state structure, and this allows
|
|
us to produce a dictionary mapping thread IDs to frames.
|
|
|
|
I used these hooks to build a debugging module that is useful when you
|
|
are looking for deadlocks in a multithreaded application. I've built
|
|
and tested this only on Solaris 8/x86, but the code should be pretty
|
|
portable.
|
|
|
|
Of course, I disclaim any liability if this code should crash your system,
|
|
erase your homework, eat your dog (who also ate your homework) or otherwise
|
|
have any undesirable effect.
|
|
|
|
Building and installing
|
|
=======================
|
|
|
|
Download threadframe-0.2.tar.gz. You can use the Makefile or the setup.py
|
|
script. There is a small test program test.py that illustrates how to use this
|
|
module to dump stack frames of all the Python interpreter threads. A sample
|
|
run is available for your perusal.
|