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. |