]> granicus.if.org Git - python/commitdiff
Bug #1055168: calling pdb.set_trace() calls Bdb.set_trace, which made
authorJohannes Gijsbers <jlg@dds.nl>
Sun, 7 Nov 2004 11:35:30 +0000 (11:35 +0000)
committerJohannes Gijsbers <jlg@dds.nl>
Sun, 7 Nov 2004 11:35:30 +0000 (11:35 +0000)
the debugger enter inside pdb.set_trace.

Patch #1061767: make pdb.set_trace enter enter at the stack frame
calling pdb.set_trace().

Lib/bdb.py
Lib/pdb.py

index dacbcc0a478b3d53fe5f5515a721a9d264c362d9..8f808cc4eb715e639cd419f775e1a389c6cba103 100644 (file)
@@ -178,9 +178,13 @@ class Bdb:
         self.returnframe = frame
         self.quitting = 0
 
-    def set_trace(self):
-        """Start debugging from here."""
-        frame = sys._getframe().f_back
+    def set_trace(self, frame=None):
+        """Start debugging from `frame`.
+
+        If frame is not specified, debugging starts from caller's frame.
+        """
+        if frame is None:
+            frame = sys._getframe().f_back
         self.reset()
         while frame:
             frame.f_trace = self.trace_dispatch
index b608adf2d4d0df4628e3bdc796b81b2393daef4e..7b5dffa3b6479126736f6277ae79d95ed32bede6 100755 (executable)
@@ -997,7 +997,7 @@ def runcall(*args, **kwds):
     return Pdb().runcall(*args, **kwds)
 
 def set_trace():
-    Pdb().set_trace()
+    Pdb().set_trace(sys._getframe().f_back)
 
 # Post-Mortem interface