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().
This commit is contained in:
Johannes Gijsbers 2004-11-07 11:35:30 +00:00
parent e174ae9a1d
commit 84a6c205e3
2 changed files with 8 additions and 4 deletions

View File

@ -178,9 +178,13 @@ def set_return(self, frame):
self.returnframe = frame self.returnframe = frame
self.quitting = 0 self.quitting = 0
def set_trace(self): def set_trace(self, frame=None):
"""Start debugging from here.""" """Start debugging from `frame`.
frame = sys._getframe().f_back
If frame is not specified, debugging starts from caller's frame.
"""
if frame is None:
frame = sys._getframe().f_back
self.reset() self.reset()
while frame: while frame:
frame.f_trace = self.trace_dispatch frame.f_trace = self.trace_dispatch

View File

@ -997,7 +997,7 @@ def runcall(*args, **kwds):
return Pdb().runcall(*args, **kwds) return Pdb().runcall(*args, **kwds)
def set_trace(): def set_trace():
Pdb().set_trace() Pdb().set_trace(sys._getframe().f_back)
# Post-Mortem interface # Post-Mortem interface