Added post_mortem() and pm() interfaces to pdb and wdb.

Added colorsys.py (color system conversions).
SV.py: new version for new svideo.h (Sjoerd).
DEVICE.py: added VIDEO event type.
This commit is contained in:
Guido van Rossum 1992-09-08 11:59:04 +00:00
parent 7b3c8a1422
commit 3577113d83
6 changed files with 63 additions and 4 deletions

View File

@ -385,6 +385,7 @@ WINQUIT = 542
DEPTHCHANGE = 543
WINSHUT = 546
DRAWOVERLAY = 547
VIDEO = 548
MENUBUTTON = RIGHTMOUSE
WINCLOSE = 537
KEYBDFNAMES = 544

View File

@ -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():

View File

@ -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',

View File

@ -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():

View File

@ -385,6 +385,7 @@ WINQUIT = 542
DEPTHCHANGE = 543
WINSHUT = 546
DRAWOVERLAY = 547
VIDEO = 548
MENUBUTTON = RIGHTMOUSE
WINCLOSE = 537
KEYBDFNAMES = 544

View File

@ -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():