[issue14728] trace function not set, causing some Pdb commands to fail

Xavier de Gaye report at bugs.python.org
Sat May 5 12:43:45 CEST 2012

New submission from Xavier de Gaye <xdegaye at gmail.com>:

The issue 13183 raises the problem that when the trace function is not
set in the caller frame, the step command fails at a return statement.

This new issue raises the point that, for the same reason:

    * the next, until and return statements fail also at a return
      statement when the caller frame does not have a trace function

    * when the user runs the up and down commands at any line in a
      frame to select a new frame, then the next, until or return
      commands fail when the selected frame does not have a trace

The attached patch fixes all those problems (by first removing the
changes made in bdb.py at issue 13183).

After the patch, the implementation ensures now that self.stopframe is
either None, or belongs to the stack frame in the interval
[self.botframe, self._curframe] and that it is set to self.botframe
when the debugging session terminates. This allows removing the while
loop in stop_here with an improvement in the performance of Pdb (since
stop_here may be called at each line, even when no breakpoint is set
in the function).

The patch applies to the default branch and includes 5 new test cases.
A patch for 2.7 will be submitted later.

components: Library (Lib)
files: pdb.patch
keywords: patch
messages: 159985
nosy: xdegaye
priority: normal
severity: normal
status: open
title: trace function not set, causing some Pdb commands to fail
type: behavior
versions: Python 2.7, Python 3.2, Python 3.3
Added file: http://bugs.python.org/file25459/pdb.patch

Python tracker <report at bugs.python.org>

More information about the Python-bugs-list mailing list