[英]How to change the Python Interpreter that gdb uses?
我使用的是 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順便說一句。 我在 ubuntu 14.04 上完成了它,它破壞了我的系統。 沒能重新站起來。 我目前正在使用它而沒有窗口管理器(它很酷,1337),但你明白了。
所以雖然 gdb 說它使用的是我的 2.7 解釋器
GDB 沒有這么說。 它說它使用的是 3.4.0,並且該解釋器以libpython3.4.a
或libpython3.4.so
的形式鏈接到GDB。
由於沒有涉及實際的 Python 二進制文件,因此這里的(小)錯誤是sys.executable
返回/usr/bin/python
。 它可能會更好地返回/usr/bin/gdb
。
我需要一個 2.7 的解釋器
在這種情況下,您必須在使用適當--with-python
值配置 gdb 后從源代碼重建gdb
。
無需重建 gdb。
只是以不同的方式調用它:
gdb -ex run --args /usr/bin/python2 test.py
$ apt-get -qq update
$ apt-get install gdb python2.7-dbg python3-all-dbg
$ gdb -ex r -ex quit --args python2 -c "import sys ; print(sys.version)" # Py2.7
$ gdb -ex r -ex quit --args python3 -c "import sys ; print(sys.version)" # Py3.6
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.