classification
Title: Python 3 pdb: shows internal code, breakpoints don't work
Type: behavior Stage:
Components: Interpreter Core Versions: Python 3.0
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: georg.brandl Nosy List: alex.gronholm, ericp, georg.brandl, pitrou
Priority: normal Keywords: patch

Created on 2009-05-27 19:15 by ericp, last changed 2009-08-13 08:17 by georg.brandl. This issue is now closed.

Files
File name Uploaded Description Edit
pdb-fix.diff georg.brandl, 2009-08-09 21:59
Messages (7)
msg88431 - (view) Author: Eric Promislow (ericp) Date: 2009-05-27 19:15
I have a simple test file, test01.py, with this output:
$ cat test01.py
#!/usr/bin/env python

print("Line 1")
print("Line 2")
print("Line 3")
$
$ # Now try debugging it.
$ python3.0 -mpdb test01.py
--Return--
> /home/ericp/opt/Python-3.0.1/lib/python3.0/io.py(762)closed()->False
-> return self.raw.closed
(Pdb) b test01.py:4
Breakpoint 1 at /home/ericp/lab/Python-3.0.1/test01.py:5
(Pdb) r
--Return--
> /home/ericp/opt/Python-3.0.1/lib/python3.0/io.py(1471)closed()->False
-> return self.buffer.closed
(Pdb) c
line 1
line 2
line 3
The program finished and will be restarted

Two main problems:

1. I shouldn't see the code for io.py

2. The program doesn't stop at the breakpoint, because that 
stack frame is exposed to bdb as (file:"<string>", line:4),
not (file:"/home/.../test01.py", line:4).
msg88756 - (view) Author: Eric Promislow (ericp) Date: 2009-06-02 17:37
Similar problem with 3.1rc1:

C:\...>c:\Python31rc1\python.exe -m  pdb hello01.py
--Return--
> c:\python31rc1\lib\encodings\cp437.py(19)encode()->b'Hello'
-> return codecs.charmap_encode(input,self.errors,encoding_map)[0]
(Pdb) b 2
*** Blank or comment
(Pdb) b hello01.py:2
Breakpoint 1 at c:\...\hello01.py:2

(Pdb) b
Num Type         Disp Enb   Where
1   breakpoint   keep yes   at c:\...\hello01.py:2
(Pdb) c
Hello
here
bye
The program finished and will be restarted
--Return--
> c:\python31rc1\lib\encodings\cp437.py(19)encode()->b'Hello'
-> return codecs.charmap_encode(input,self.errors,encoding_map)[0]
(Pdb)
msg91433 - (view) Author: Alex Grönholm (alex.gronholm) * Date: 2009-08-09 21:25
Why has this not been resolved yet? Not having a working debugger is a
severe hindrance to the acceptance of Py3k.
msg91434 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2009-08-09 21:59
Attached patch confirmedly fixes this.  Will commit as soon as svn is
back up.
msg91468 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2009-08-11 06:11
Reading this patch, is it normal that the file is opened in text mode
without an encoding specified? What if the source file uses a different
encoding than the default system one?
msg91469 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2009-08-11 06:15
That's a good question :)

A quick test shows that exec() does honor coding cookies in code given
as a bytestring, so simply changing to open(..., "rb") should be fine.
msg91515 - (view) Author: Georg Brandl (georg.brandl) * (Python committer) Date: 2009-08-13 08:17
Fixed in r74366, and merged back to 3.1 branch in r74367.
History
Date User Action Args
2009-08-13 08:17:21georg.brandlsetstatus: open -> closed
resolution: fixed
messages: + msg91515
2009-08-11 06:15:41georg.brandlsetmessages: + msg91469
2009-08-11 06:11:06pitrousetnosy: + pitrou
messages: + msg91468
2009-08-09 21:59:49georg.brandlsetfiles: + pdb-fix.diff

nosy: + georg.brandl
messages: + msg91434

assignee: georg.brandl
keywords: + patch
2009-08-09 21:25:13alex.gronholmsetnosy: + alex.gronholm
messages: + msg91433
2009-06-02 17:37:30ericpsetmessages: + msg88756
2009-05-27 19:15:05ericpcreate