]> granicus.if.org Git - python/commitdiff
Merged revisions 67000 via svnmerge from
authorBenjamin Peterson <benjamin@python.org>
Wed, 22 Oct 2008 21:19:41 +0000 (21:19 +0000)
committerBenjamin Peterson <benjamin@python.org>
Wed, 22 Oct 2008 21:19:41 +0000 (21:19 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r67000 | benjamin.peterson | 2008-10-22 16:16:34 -0500 (Wed, 22 Oct 2008) | 1 line

  fix #4150: pdb's up command didn't work for generators in post-mortem
........

Lib/bdb.py
Lib/pdb.py
Misc/NEWS

index d74415bf14771fd29777e7ece80654777d4552a6..5288cc0d77b3fff578e0312df2922fe926db43bf 100644 (file)
@@ -320,6 +320,8 @@ class Bdb:
         while t is not None:
             stack.append((t.tb_frame, t.tb_lineno))
             t = t.tb_next
+        if f is None:
+            i = max(0, len(stack) - 1)
         return stack, i
 
     #
index a7a3a18befaf0d188949c0920dfb47c9c7810e7d..4a080c73c339fcd199c70d875aed961a36ad0392 100755 (executable)
@@ -1224,9 +1224,7 @@ def post_mortem(t=None):
 
     p = Pdb()
     p.reset()
-    while t.tb_next is not None:
-        t = t.tb_next
-    p.interaction(t.tb_frame, t)
+    p.interaction(None, t)
 
 def pm():
     post_mortem(sys.last_traceback)
@@ -1289,9 +1287,7 @@ def main():
             print "Uncaught exception. Entering post mortem debugging"
             print "Running 'cont' or 'step' will restart the program"
             t = sys.exc_info()[2]
-            while t.tb_next is not None:
-                t = t.tb_next
-            pdb.interaction(t.tb_frame,t)
+            pdb.interaction(None, t)
             print "Post mortem debugger finished. The "+mainpyfile+" will be restarted"
 
 
index c254787c8ef534a51528c901b8d59b5596084df7..73bb7fa7eef1579627f526800eb057d04fd3d3e9 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -27,6 +27,9 @@ Core and Builtins
 Library
 -------
 
+- Issue #4150: Pdb's "up" command now works for generator frames in post-mortem
+  debugging.
+
 - Issue #4092: Return ArgInfo as promised in the documentation from
   inspect.getargvalues.