summaryrefslogtreecommitdiff
path: root/Lib
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1992-09-08 11:59:04 +0000
committerGuido van Rossum <guido@python.org>1992-09-08 11:59:04 +0000
commit3577113d8366d1c75cf2cbdbeb5168fd86d2834c (patch)
tree1522d69f53f331f7e9ecf11b820baf7fdb67fb46 /Lib
parent7b3c8a1422be4e2d7bc5e59779071432ef57c1cb (diff)
downloadcpython-git-3577113d8366d1c75cf2cbdbeb5168fd86d2834c.tar.gz
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.
Diffstat (limited to 'Lib')
-rwxr-xr-xLib/irix5/DEVICE.py1
-rw-r--r--Lib/lib-stdwin/wdb.py19
-rw-r--r--Lib/pdb.doc9
-rwxr-xr-xLib/pdb.py18
-rwxr-xr-xLib/plat-irix5/DEVICE.py1
-rwxr-xr-xLib/stdwin/wdb.py19
6 files changed, 63 insertions, 4 deletions
diff --git a/Lib/irix5/DEVICE.py b/Lib/irix5/DEVICE.py
index 2c20485aa4..7ace8cb0b6 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 b3d6b73760..c499296c8a 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 0ae4c0e2e8..c92b57229d 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',
diff --git a/Lib/pdb.py b/Lib/pdb.py
index f564f642b3..94dcd797a6 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -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 2c20485aa4..7ace8cb0b6 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 b3d6b73760..c499296c8a 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():