[wingide-users] Auto-launching wing on exception
support at wingware.com
Wed Sep 27 19:13:52 MDT 2006
On Wed, 27 Sep 2006, Tony Cappellini wrote:
> Changing it to this, makes it work with the pywin debugge, which is only
> marginally better than pdb.
> # python cookbook recipe
> import sys
> def info(type, value, tb):
> if hasattr(sys, 'ps1') or not sys.stderr.isatty():
> # we are in interactive mode or we don't have a tty-like
> # device, so we call the default hook
> sys.__excepthook__(type, value, tb)
> import traceback
> import pywin.debugger
> # instead of: import pdb pdb.pm() use: import pywin.debugger
> # we are NOT in interactive mode, print the exception...
> traceback.print_exception(type, value, tb)
> # ...then start the debugger in post-mortem mode.
> sys.excepthook = info
> Does wing have a mechanism to launch it at the point of the exception, if it
> is not already running?
You can craft a similar mechanism as above with the following
You'll need to copy wingdbstub.py out of your Wing installation
so it is found and click on the bug icon in the lower left of the
main window to Enable Passive Listen.
However, this doesn't show the traceback in the Exceptions tool
so it's not quite the same. You'll need to inspect things
manually, probably best via the Debug Probe.
(I tried just adding 'raise type, value, tb' but it's apparently
too late in the termination proces to do that; we would need to
add some more debugger API to call with the traceback info to
have this work exactly the same way as the recipes)
If you can run in the debugger and only want to see exceptions at
termination, another option is to set the Debugger / Exceptions /
Report Exceptions preference to At Process Termination. It's not
quite the same internally but similar to modifying sys.excepthook
as far as when things get reported.
Wing IDE for Python
Advancing Software Development
More information about the wingide-users