我正在使用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.alibpython3.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/

10-11 23:09
查看更多