From: Johannes Gijsbers Date: Sun, 7 Nov 2004 11:35:30 +0000 (+0000) Subject: Bug #1055168: calling pdb.set_trace() calls Bdb.set_trace, which made X-Git-Tag: v2.4c1~81 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=84a6c205e3582b5a8705baf9720124c22f74ae4c;p=python Bug #1055168: calling pdb.set_trace() calls Bdb.set_trace, which made the debugger enter inside pdb.set_trace. Patch #1061767: make pdb.set_trace enter enter at the stack frame calling pdb.set_trace(). --- diff --git a/Lib/bdb.py b/Lib/bdb.py index dacbcc0a47..8f808cc4eb 100644 --- a/Lib/bdb.py +++ b/Lib/bdb.py @@ -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 diff --git a/Lib/pdb.py b/Lib/pdb.py index b608adf2d4..7b5dffa3b6 100755 --- a/Lib/pdb.py +++ b/Lib/pdb.py @@ -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