Debugger - fails to "continue" with breakpoint set

Ed Greenberg edg at greenberg.org
Wed Sep 15 18:17:52 EDT 2010


On 09/15/2010 02:04 PM, Thomas Jollans wrote:
> On Wednesday 15 September 2010, it occurred to Ed Greenberg to exclaim:
>    
>> I'm pretty new to Python, but I am really enjoying it as an alternative
>> to Perl and PHP.
>>
>> When I run the debugger [import pdb; pdb.set_trace()] and then do next
>> and step, and evaluate variables, etc, when I hit 'c' for continue, we
>> go to the end, just fine.
>>
>> As soon as I set a breakpoint down the line, [b<line number>] the
>> behavior of 'c' changes. Instead of continuing until the breakpoint, or
>> until the end, if the breakpoint is hidden by a conditional, the
>> debugger starts to treat 'c' as a step (or a next, I'm not sure which.)
>>
>> This behavior is repeatable and consistent.
>>
>> I see this in python 2.6.4 on Ubuntu 9.10 and also in 2.5.2 on Ubuntu
>> 8.04 (Hardy), both using the installed packages.
>>
>> I must be missing something. Assistance will be welcome.
>>      
> I can't reproduce this. Please post a small script and debugger session
> transcript that illustrate the problem clearly.
>
> Maybe, on the way, you'll discover something you'd been missing. Maybe someone
> here will be able to help you then (maybe someone is now, but not me...).
> Maybe it's a bug (which it would be, if it behaves as you describe, but as I
> said, it appears to work for me).
>    

Here is my debugger session as requested.  Note that I set a breakpoint 
at line 7, but c still stops at lines 4, 5 and 6.  I hope somebody can 
explain this.
-------------------------------------------------
root at cloud4:~# python --version
Python 2.6.4
root at cloud4:~# python test.py
 > /root/test.py(3)<module>()
-> a=1
(Pdb) l
   1      #!/usr/bin/python
   2      import pdb;pdb.set_trace()
   3  ->    a=1
   4      b=2
   5      c=3
   6      d=4
   7      print a,b,c,d
   8
[EOF]
(Pdb) b 7
Breakpoint 1 at /root/test.py:7
(Pdb) c
 > /root/test.py(4)<module>()
-> b=2
(Pdb) c
 > /root/test.py(5)<module>()
-> c=3
(Pdb) c
 > /root/test.py(6)<module>()
-> d=4
(Pdb) c
 > /root/test.py(7)<module>()
-> print a,b,c,d
(Pdb) c
1 2 3 4
--Return--
 > /root/test.py(7)<module>()->None
-> print a,b,c,d
(Pdb) c
root at cloud4:~#




More information about the Python-list mailing list