Python pdb bug, followed by bug in bugs.python.org
Robert Kern
robert.kern at gmail.com
Thu Apr 11 14:42:50 EDT 2013
On 2013-04-11 23:11, Ian Kelly wrote:
> On Thu, Apr 11, 2013 at 8:56 AM, <donaldcallen at gmail.com> wrote:
>> #! /usr/bin/env python3
>> import pdb
>> def foo(message):
>> print(message)
>> pdb.set_trace()
>> foo('first call')
>> foo('second call')
>>
>> Stick this in an file with execute permission and run it. At the first breakpoint, the backtrace will be correct. Continue. At the second breakpoint, a backtrace will show the foo('first call') on the stack when, in fact, the call came from foo('second call'), as verified by the printed message.
>
>
> This is what I get using Python 3.3.1 in Windows:
>
> C:\Users\ikelly\Desktop>c:\python33\python python_bug.py
> first call
> --Return--
>> c:\users\ikelly\desktop\python_bug.py(7)foo()->None
> -> pdb.set_trace()
> (Pdb) c
> second call
> --Return--
>> c:\users\ikelly\desktop\python_bug.py(7)foo()->None
> -> pdb.set_trace()
> (Pdb) c
Use `where` to see the problem:
[~/scratch]$ python3.3 pdbbug.py
first call
--Return--
> /Users/rkern/scratch/pdbbug.py(4)foo()->None
-> pdb.set_trace()
(Pdb) where
/Users/rkern/scratch/pdbbug.py(5)<module>()
-> foo('first call')
> /Users/rkern/scratch/pdbbug.py(4)foo()->None
-> pdb.set_trace()
(Pdb) c
second call
--Return--
> /Users/rkern/scratch/pdbbug.py(4)foo()->None
-> pdb.set_trace()
(Pdb) where
/Users/rkern/scratch/pdbbug.py(5)<module>()
-> foo('first call')
> /Users/rkern/scratch/pdbbug.py(4)foo()->None
-> pdb.set_trace()
(Pdb)
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
More information about the Python-list
mailing list