"False exceptions?" (was Re: theme of the week: tools

Dan Perl danperl at rogers.com
Fri Oct 1 03:08:52 CEST 2004

"David Bolen" <db3l at fitlinxx.com> wrote in message 
news:u7jqb4afj.fsf at fitlinxx.com...
> "Dan Perl" <danperl at rogers.com> writes:
>> (...)  In my experience with sporadic problems like the ones you are
>> describing, debuggers are usually not much help, except after the fact, 
>> for
>> instance debugging a core of a C/C++ program.  If the problem is caused 
>> by a
>> race condition, a debugger can be useless because it affects the 
>> scheduling
>> of threads.  How does the loaded stub work in cases like that?  Does it
>> affect threads in any way?
> Yes, once the debugger is actually activated (you start up the IDE and
> it attaches) it's like a normal Python debugger, so it uses the trace
> hook and will have some impact on runtime.  You can finesse this a little 
> by
> controlling where you import the stub and/or when you connect to the 
> process.

Interesting.  So it's actively attached to the process, not just listening 
to it.  I would like to find out more about how this debug stub works.  The 
Wing IDE reference manual doesn't get into details like that, but I can see 
that one can also set breakpoints remotely.  That should mean that the stub 
does quite a bit of work.

Since my previous posting on this thread I have discovered an interesting 
utility for remote reporting of exceptions, although I couldn't try it: 
http://egofile.com/cgi-bin/blosxom.cgi.  My understanding is that it sends 
an HTTP POST message.  That should mean that it's much less powerful than 
the Wing IDE stub but it should be also less intrusive.

And I also found win32traceutil 
(http://www.python.org/windows/win32/#win32trace), which has quite a similar 
use.  Of course, it's only for Windows, and I'm not sure whether it works 
with the listener and the debugged process on different nodes.  But this is 
something I may personally use.

Any experience with these tools?  Especially with win32traceutil, because 
that's something I may use.


More information about the Python-list mailing list