[issue14808] Pdb does not stop at a breakpoint set on the line of a function definition

2012-05-25 Thread Xavier de Gaye

Xavier de Gaye xdeg...@gmail.com added the comment:

Parsing the modules source seems a better way to fix this problem, see issue 
14913.

--

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14808
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14808] Pdb does not stop at a breakpoint set on the line of a function definition

2012-05-18 Thread Terry J. Reedy

Changes by Terry J. Reedy tjre...@udel.edu:


--
nosy: +georg.brandl

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14808
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com



[issue14808] Pdb does not stop at a breakpoint set on the line of a function definition

2012-05-14 Thread Xavier de Gaye

New submission from Xavier de Gaye xdeg...@gmail.com:

In the following test both breakpoints are set on the line of a
function definition. However pdb does not stop when entering foo whose
breakpoint has been set with 'break 1' while pdb stops when entering
bar whose breakpoint has been set with 'break bar'. The breakpoint
table display is identical for both breakpoints. This is inconsistent
and confusing.


===   main.py  ==
1  def foo():
2  pass
3
4  def bar():
5  pass
6
7  def main():
8  foo()
9  bar()
10
11  import pdb; pdb.runcall(main)
=
$ python main.py
 /path_to/main.py(8)main()
- foo()
(Pdb) break 1
Breakpoint 1 at /path_to/main.py:1
(Pdb) break bar
Breakpoint 2 at /path_to/main.py:4
(Pdb) break
Num Type Disp Enb   Where
1   breakpoint   keep yes   at /path_to/main.py:1
2   breakpoint   keep yes   at /path_to/main.py:4
(Pdb) continue
 /path_to/main.py(5)bar()
- pass
(Pdb) continue
$
=


The reverse occurs in the following test where pdb stops only at the
execution of the function definition when the breakpoint has been set
with a line number.

===   main.py  ==
 1  x = 1
 2
 3  def foo():
 4  pass
 5
 6  def bar():
 7  pass
 8
 9  x = 2
=
$ python -m pdb main.py
 /path_to/main.py(1)module()
- x = 1
(Pdb) break 3
Breakpoint 1 at /path_to/main.py:3
(Pdb) break bar
Breakpoint 2 at /path_to/main.py:6
(Pdb) break 9
Breakpoint 3 at /path_to/main.py:9
(Pdb) break
Num Type Disp Enb   Where
1   breakpoint   keep yes   at /path_to/main.py:3
2   breakpoint   keep yes   at /path_to/main.py:6
3   breakpoint   keep yes   at /path_to/main.py:9
(Pdb) continue
 /path_to/main.py(3)module()
- def foo():
(Pdb) continue
 /path_to/main.py(9)module()
- x = 2
(Pdb)
=


The following patch fixes both inconsistencies by having pdb stop when
entering a function and at the execution of a definition whatever the
method used to set the breakpoint (line number or function name).

Two test cases are included in the patch.

--
components: Library (Lib)
files: pdb_default.patch
keywords: patch
messages: 160629
nosy: xdegaye
priority: normal
severity: normal
status: open
title: Pdb does not stop at a breakpoint set on the line of a function 
definition
type: behavior
versions: Python 2.7, Python 3.2, Python 3.3
Added file: http://bugs.python.org/file25578/pdb_default.patch

___
Python tracker rep...@bugs.python.org
http://bugs.python.org/issue14808
___
___
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com