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 @@ 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

View File

@ -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