diff options
Diffstat (limited to 'Lib')
-rwxr-xr-x | Lib/irix5/DEVICE.py | 1 | ||||
-rw-r--r-- | Lib/lib-stdwin/wdb.py | 19 | ||||
-rw-r--r-- | Lib/pdb.doc | 9 | ||||
-rwxr-xr-x | Lib/pdb.py | 18 | ||||
-rwxr-xr-x | Lib/plat-irix5/DEVICE.py | 1 | ||||
-rwxr-xr-x | Lib/stdwin/wdb.py | 19 |
6 files changed, 63 insertions, 4 deletions
diff --git a/Lib/irix5/DEVICE.py b/Lib/irix5/DEVICE.py index 2c20485..7ace8cb 100755 --- a/Lib/irix5/DEVICE.py +++ b/Lib/irix5/DEVICE.py @@ -385,6 +385,7 @@ WINQUIT = 542 DEPTHCHANGE = 543 WINSHUT = 546 DRAWOVERLAY = 547 +VIDEO = 548 MENUBUTTON = RIGHTMOUSE WINCLOSE = 537 KEYBDFNAMES = 544 diff --git a/Lib/lib-stdwin/wdb.py b/Lib/lib-stdwin/wdb.py index b3d6b73..c499296 100644 --- a/Lib/lib-stdwin/wdb.py +++ b/Lib/lib-stdwin/wdb.py @@ -2,8 +2,6 @@ # XXX To do: # - don't fall out of bottom frame -# - is the /tmp file hack really needed? -# - also use it for post-mortem debugging import stdwin @@ -273,6 +271,8 @@ class Wdb(bdb.Bdb, basewin.BaseWindow): # Window debugger d.close() +# Simplified interface + def run(statement): x = Wdb().init() try: x.run(statement) @@ -288,6 +288,21 @@ def runcall(*args): try: apply(Pdb().init().runcall, args) finally: x.close() + +# Post-Mortem interface + +def post_mortem(traceback): + p = Pdb().init() + p.reset() + p.interaction(None, traceback) + +def pm(): + import sys + post_mortem(sys.last_traceback) + + +# Main program for testing + TESTCMD = 'import x; x.main()' def test(): diff --git a/Lib/pdb.doc b/Lib/pdb.doc index 0ae4c0e..c92b572 100644 --- a/Lib/pdb.doc +++ b/Lib/pdb.doc @@ -9,6 +9,15 @@ To use the debugger in its simplest form: The debugger's prompt is '(Pdb) '. This will stop in the first function call in <a statement>. +Alternatively, if a statement terminated with an unhandled exception, +you can use pdb's post-mortem facility to inspect the contents of the +traceback: + + >>> <a statement> + <exception traceback> + >>> import pdb + >>> pdb.pm() + The commands recognized by the debugger are listed in the next section. Most can be abbreviated as indicated; e.g., h(elp) means that 'help' can be typed as 'h' or 'help' (but not as 'he' or 'hel', @@ -248,6 +248,8 @@ class Pdb(bdb.Bdb, cmd.Cmd): print self.format_stack_entry(frame_lineno) +# Simplified interface + def run(statement): Pdb().init().run(statement) @@ -257,6 +259,22 @@ def runctx(statement, globals, locals): def runcall(*args): apply(Pdb().init().runcall, args) + +# Post-Mortem interface + +def post_mortem(t): + p = Pdb().init() + p.reset() + while t.tb_next <> None: t = t.tb_next + p.interaction(t.tb_frame, t) + +def pm(): + import sys + post_mortem(sys.last_traceback) + + +# Main program for testing + TESTCMD = 'import x; x.main()' def test(): diff --git a/Lib/plat-irix5/DEVICE.py b/Lib/plat-irix5/DEVICE.py index 2c20485..7ace8cb 100755 --- a/Lib/plat-irix5/DEVICE.py +++ b/Lib/plat-irix5/DEVICE.py @@ -385,6 +385,7 @@ WINQUIT = 542 DEPTHCHANGE = 543 WINSHUT = 546 DRAWOVERLAY = 547 +VIDEO = 548 MENUBUTTON = RIGHTMOUSE WINCLOSE = 537 KEYBDFNAMES = 544 diff --git a/Lib/stdwin/wdb.py b/Lib/stdwin/wdb.py index b3d6b73..c499296 100755 --- a/Lib/stdwin/wdb.py +++ b/Lib/stdwin/wdb.py @@ -2,8 +2,6 @@ # XXX To do: # - don't fall out of bottom frame -# - is the /tmp file hack really needed? -# - also use it for post-mortem debugging import stdwin @@ -273,6 +271,8 @@ class Wdb(bdb.Bdb, basewin.BaseWindow): # Window debugger d.close() +# Simplified interface + def run(statement): x = Wdb().init() try: x.run(statement) @@ -288,6 +288,21 @@ def runcall(*args): try: apply(Pdb().init().runcall, args) finally: x.close() + +# Post-Mortem interface + +def post_mortem(traceback): + p = Pdb().init() + p.reset() + p.interaction(None, traceback) + +def pm(): + import sys + post_mortem(sys.last_traceback) + + +# Main program for testing + TESTCMD = 'import x; x.main()' def test(): |