[Bug 1241668] Re: gdb embeds python3.3, but support scripts are not compatible
Steve Langasek
steve.langasek at canonical.com
Mon Nov 4 23:47:36 UTC 2013
jtaylor points out on IRC that fixing the syntax with 2to3 is
insufficient to make this actually work.
Test case:
$ sudo apt-get install python3-dbg gdb
$ 2to3 /usr/lib/debug/usr/bin/python3.3m-gdb.py > /tmp/python-gdb.patch
$ cd / && sudo patch -p0 < /tmp/python-gdb.patch
$ gdb --args python3-dbg /usr/bin/lsb_release
(gdb) break PyTuple_Size
(gdb) run
(gdb) bt
With gdb compiled for python3, instead of getting useful python
information in the backtrace, you get python exceptions:
(gdb) bt
#0 PyTuple_Size (
op=(None, <code at remote 0x7ffff7fe8340>, '_make_relax_case.<locals>._relax_case', <code at remote 0x7ffff7fe8400>)) at ../Objects/tupleobject.c:127
#1 0x00000000006567c0 in PyFunction_NewWithQualName (
Python Exception <class 'AttributeError'> 'PyDictObjectPtr' object has no attribute 'items':
code=<code at remote 0x7ffff7fe84c0>, globals=,
qualname='_make_relax_case') at ../Objects/funcobject.c:29
Python Exception <class 'TypeError'> 'gdb.Value' object cannot be interpreted as an integer:
<snip>
so this seems to need some further help.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to python2.7 in Ubuntu.
https://bugs.launchpad.net/bugs/1241668
Title:
gdb embeds python3.3, but support scripts are not compatible
Status in Python:
New
Status in “gdb” package in Ubuntu:
Invalid
Status in “python2.7” package in Ubuntu:
Triaged
Status in “python3.3” package in Ubuntu:
Triaged
Status in “gdb” source package in Saucy:
Invalid
Status in “python2.7” source package in Saucy:
Triaged
Status in “python3.3” source package in Saucy:
Triaged
Bug description:
The saucy gdb appears to be linked against libpython3.3.
This results in a conflict when trying to debug python2.7 programs,
which use the python2.7-dbg.py scripts from python2.7-dbg. This makes
debugging Python programs difficult.
File "/usr/lib/debug/usr/bin/python2.7-gdb.py", line 54
Py_TPFLAGS_HEAPTYPE = (1L << 9)
^
SyntaxError: invalid syntax
File "/usr/lib/debug/usr/bin/python2.7-gdb.py", line 54
Py_TPFLAGS_HEAPTYPE = (1L << 9)
There are also invalid print statements that show up as well.
If these are updated, then the file parses, but `py-bt` fails with:
Error occurred in Python command: global name 'long' is not defined
Updating all of the long() references to int() doesn't work:
Error occurred in Python command: 'gdb.Value' object cannot be
interpreted as an integer
To manage notifications about this bug go to:
https://bugs.launchpad.net/python/+bug/1241668/+subscriptions
More information about the foundations-bugs
mailing list