我正在使用ubuntu 14.04,其中python3是默认系统软件包。
我想用gdb调试Python2.7程序,但是我似乎遇到了这个问题:
当我在gdb中时,使用py
命令将我置于解释器中,因此我在解释器中运行了以下命令:
首先,我检查解释器版本:
(gdb) py
>import sys
>print(sys.version)
>end
3.4.0 (default, Apr 11 2014, 13:08:40)
[GCC 4.8.2]
然后我检查正在使用的解释器可执行文件
(gdb) py
>import sys
>print(sys.executable)
>end
/usr/bin/python
(gdb)
然后在bash中,我检查解释器:
12:34]hostname ~ $ls -l /usr/bin/python
lrwxrwxrwx 1 root root 9 Dec 21 2013 /usr/bin/python -> python2.7
因此,尽管gdb表示它正在使用我的2.7解释器,但实际上它正在使用另一个。我需要一个2.7解释器才能将其与ubuntu软件包“python2.7-dbg”提供的python特定扩展一起使用,因为据我所知,目前还没有适用于python 3.4的软件包,即使有,我要调试的程序运行python 2.7
我的问题是如何使用所需的解释器?
[编辑]
不要卸载python3 btw。我是在ubuntu 14.04上完成的,它破坏了我的系统。无法设法重新启动它。我目前正在使用它而没有窗口管理器(很酷,是1337年),但是您明白了。
最佳答案
GDB没有这么说。它说它正在使用3.4.0,并且该解释器以libpython3.4.a
或libpython3.4.so
的形式链接到GDB中。
由于没有实际的Python二进制文件,这里的(小)错误是sys.executable
返回/usr/bin/python
。最好改为返回/usr/bin/gdb
。
在这种情况下,必须使用适当的gdb
值对其进行配置后,才能从源代码重建--with-python
。
关于python - 如何更改gdb使用的Python解释器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26243956/