summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Gijsbers <jlg@dds.nl>2004-11-07 11:35:30 (GMT)
committerJohannes Gijsbers <jlg@dds.nl>2004-11-07 11:35:30 (GMT)
commit84a6c205e3582b5a8705baf9720124c22f74ae4c (patch)
treea4715077668df4e7afc3075a52c7e9329e6f5ade
parente174ae9a1d7d57f406fa3c25de32dfffcd950ea2 (diff)
downloadcpython-84a6c205e3582b5a8705baf9720124c22f74ae4c.zip
cpython-84a6c205e3582b5a8705baf9720124c22f74ae4c.tar.gz
cpython-84a6c205e3582b5a8705baf9720124c22f74ae4c.tar.bz2
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().
-rw-r--r--Lib/bdb.py10
-rwxr-xr-xLib/pdb.py2
2 files changed, 8 insertions, 4 deletions
diff --git a/Lib/bdb.py b/Lib/bdb.py
index dacbcc0..8f808cc 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 b608adf..7b5dffa 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