Better debugging of multi-threaded apps

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Better debugging of multi-threaded apps

WingIDE - User mailing list
Is there an easy way to pause all the other threads while debugging the thread that hit a breakpoint?

If I have 2 or 3 breakpoints in my code, stepping in one thread can switch me to another thread which is irritating.  Also, not sure how to get back to the thread I'm actually interested in

_________________________________________________
Wing IDE users list
http://wingware.com/lists/wingide
Reply | Threaded
Open this post in threaded view
|

Re: Better debugging of multi-threaded apps

WingIDE - User mailing list
Mark Jones via wingide-users wrote:
> Is there an easy way to pause all the other threads while debugging
> the thread that hit a breakpoint?
>
> If I have 2 or 3 breakpoints in my code, stepping in one thread can
> switch me to another thread which is irritating.  Also, not sure how
> to get back to the thread I'm actually interested in

The only way to _not_ stop other threads when one threads stops is to
use wingdbstub and the debugger API. Unless you are doing that, Wing's
debugger tries to stop all threads if any thread stops.  However, if
some threads are not getting run or are running only C/C++ code then
they are not stopped.  I suspect when you're stepping in the debugger
you're going over things that end up yielding to the other threads and
debugging moves there because Python starts to run some other thread.

The stack selector in the Debug Probe, Stack Data, and a few other tools
should have a popup to the left with all the threads in it, and that can
be used to change what the current thread is, as far as what data the
debugger is showing and in what context the Debug Probe is executing
things.  But there is no way to continue stepping in a specific thread.  
Python's program counter is at a specific location/thread and when you
step you'll be continuing there.  Setting breakpoints or conditional
breakpoints in strategic places and continuing the debugger (instead of
stepping) is probably the way to go.

I hope this is helpful.

--

Stephan Deibel
Wingware | Python IDE

The Intelligent Development Environment for Python Programmers

wingware.com


_________________________________________________
Wing IDE users list
http://wingware.com/lists/wingide