classification
Title: setting a bp on current function, Pdb stops at next line although no bp
Type: behavior Stage:
Components: Library (Lib) Versions: Python 3.2, Python 3.3, Python 2.7
process
Status: open Resolution:
Dependencies: Superseder:
Assigned To: Nosy List: georg.brandl, xdegaye
Priority: normal Keywords: patch

Created on 2012-05-12 19:50 by xdegaye, last changed 2012-05-25 11:55 by xdegaye.

Files
File name Uploaded Description Edit
pdb_default.patch xdegaye, 2012-05-12 19:50 review
Messages (2)
msg160489 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2012-05-12 19:50
Setting a breakpoint on a function from within that functions makes
pdb to stop at the following line (where no breakpoint is set) after a
continue command. In the following test pdb stops at line 3 where
there is no breakpoint.


===   main.py   =================================
def foo():
    x = 1
    x = 2

foo()
=================================================
$ python -m pdb main.py
> /path_to/main.py(1)<module>()
-> def foo():
(Pdb) import sys; print(sys.version)
3.3.0a3+ (default:4e9680570be8, May 11 2012, 12:09:15) 
[GCC 4.3.2]
(Pdb) break 2
Breakpoint 1 at /path_to/main.py:2
(Pdb) continue
> /path_to/main.py(2)foo()
-> x = 1
(Pdb) break foo
Breakpoint 2 at /path_to/main.py:1
(Pdb) continue
> /path_to/main.py(3)foo()
-> x = 2
(Pdb) where
  /home/xavier/src/cpython/cpython-hg-default/Lib/bdb.py(405)run()
-> exec(cmd, globals, locals)
  <string>(1)<module>()
  /path_to/main.py(5)<module>()
-> foo()
> /path_to/main.py(3)foo()
-> x = 2
(Pdb) quit
=================================================

The attached patch fixes the problem. The patch includes a test case.
msg161572 - (view) Author: Xavier de Gaye (xdegaye) * (Python triager) Date: 2012-05-25 11:55
Parsing the modules source seems a better way to fix this problem, see issue 14913.
History
Date User Action Args
2012-05-25 11:55:09xdegayesetmessages: + msg161572
2012-05-18 17:49:19terry.reedysetnosy: + georg.brandl
2012-05-12 19:50:48xdegayecreate