¿Cómo cambiar el intérprete de Python que usa gdb?

Estoy usando ubuntu 14.04, donde python3 es un paquete de sistema predeterminado.

Quiero depurar progtwigs de Python2.7 con gdb, pero parece que encuentro este problema:

Cuando estoy en gdb, usar el comando py me pone en un intérprete, así que ejecuté estos comandos en el intérprete:

Primero reviso la versión del intérprete:

 (gdb) py >import sys >print(sys.version) >end 3.4.0 (default, Apr 11 2014, 13:08:40) [GCC 4.8.2] 

Luego verifico que intérprete se está utilizando.

 (gdb) py >import sys >print(sys.executable) >end /usr/bin/python (gdb) 

Luego en bash, reviso el intérprete:

 12:34]hostname ~ $ls -l /usr/bin/python lrwxrwxrwx 1 root root 9 Dec 21 2013 /usr/bin/python -> python2.7 

Entonces, aunque gdb dice que está usando mi intérprete 2.7, en realidad está usando otro. Necesito un intérprete 2.7 para poder usarlo con las extensiones específicas de python que proporciona el paquete ubuntu ‘python2.7-dbg’, porque hasta ahora sé que no existe tal paquete para python 3.4, e incluso si lo hubiera. Los progtwigs que quiero depurar ejecutan Python 2.7

Mi pregunta es ¿cómo puedo hacer que use el intérprete que quiero?

[EDITAR] No desinstale python3 por cierto. Lo hice en Ubuntu 14.04 y arruinó mi sistema. No pude conseguirlo de nuevo. Actualmente lo estoy usando sin administrador de ventanas (es genial y 1337), pero entiendes la idea.

Entonces, aunque gdb dice que está usando mi intérprete 2.7

GDB no dice eso. Dice que está usando 3.4.0, y que el intérprete está vinculado a GDB, en forma de libpython3.4.a o libpython3.4.so .

Como no hay un binario de Python real involucrado, el error (menor) aquí es que sys.executable devuelve /usr/bin/python . Posiblemente sería mejor que devuelva /usr/bin/gdb lugar.

Necesito un intérprete 2.7

En ese caso, tendrás que reconstruir gdb desde la fuente, después de configurarlo con el valor apropiado --with-python .

 $ 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