Thread debugging is a bit experimental. By default it is not turned on, since it adds a bit of additional complexity.
To turn thread debugging on, pass the --threading
option on the
pydb
invocation.
Tests have shown that one can easily cause a deadlock in trying to
change the behavior if one is not careful. At present we don't have a
way to issue a run
command, although the hard restart
works. See 1.2.9. Also, to quit we haven't worked
out a sure-fire method to terminate gracefully like you can do when
there are no threads. We have however added a kill
command. See
1.2.12 for information on kill
. This is a little
brutal, but at present it is about the best that can be done.
One will get the most information using Python 2.5 or having threadframe installed with versions prior to 2.5. However since the debugger keeps its own information about threads, one can still get some information when this is not the case.
The debugger also relies on the threading module, especially to assist in tracing. If the program uses the lower-level thread routines, some debugging can be done but it will be much more limited.