I've added little item to what will be in the next release of the pydb manual. I also throw it out for discussion...

By necessity, debuggers change the operation of the program they are debugging. And this can lead to unexpected and unwanted differences. It has happened so often that the term "Heisenbugs" http://en.wikipedia.org/wiki/Heisenbug was coined invented to describe the situation where the adding the use of a the debugger (among other possibilities) changes behavior of the program so that the bug doesn't manifest itself anymore.

Of course a debugger, and this one in particular, tries hard to make
itself transparent when not asked to do its thing, there can be
unavoidable differences. One such noticeable difference, mentioned in
conjunction with " set_trace()" is the speed at which the debugger runs. Another differences may involved name-space issues since some of the debugger may live inside the debugged program.

Consequently as a debugger writer a general principle (and principle
use in this debugger) is: bring in services only when needed or
requested. For example, it is possible that we will add debugging
threads and out-of-process debugging, including debugging from outside of the running computer. For thread debugging, most certainly the debugged program will, by necessity, add a thread to manage the
others. For out of process debugging, most certainly some sort of
communication mechanism will need to get added, e.g. a socket. However there are many programs that one might want to debug that might not use either threads or sockets or need to debug outside of the debugged program. So when debugging those, a debugger should not add beforehand either a thread or a socket, unless the features that require them are requested. And even then, not until they are requested.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "pyxides" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/pyxides
-~----------~----~----~----~------~----~------~--~---

Reply via email to