Подтвердить что ты не робот

Как изменить интерпретатор Python, который использует gdb?

Я использую ubuntu 14.04, где python3 является системным пакетом по умолчанию.

Я хочу отлаживать программы Python2.7 с помощью gdb, но я, похоже, сталкиваюсь с этой проблемой:

Когда я в 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, чтобы иметь возможность использовать его с конкретными расширениями python, которые предоставляет пакет ubuntu "python2.7-dbg", поскольку, насколько я знаю, такого пакета для python 3.4 еще нет, и даже если бы это было, программы, которые я хочу отлаживать, запускать python 2.7

Мой вопрос: как я могу использовать интерпретатор, который я хочу?

[EDIT] Не удалять python3. Я сделал это на ubuntu 14.04, и это разрушило мою систему. Не удалось получить его снова. В настоящее время я использую его без оконного менеджера (это классно и 1337), но вы получаете идею.

4b9b3361

Ответ 1

Итак, хотя gdb говорит, что с помощью моего переводчика 2.7

GDB этого не говорит. Он говорит, что использует 3.4.0, и этот интерпретатор связан с GDB в форме libpython3.4.a или libpython3.4.so.

Так как нет реального бинарного Python, ошибка (незначительная) здесь заключается в том, что sys.executable возвращает /usr/bin/python. Возможно, было бы лучше вернуться вместо /usr/bin/gdb.

Мне нужен переводчик 2.7

В этом случае вам придется перестроить gdb из источника, после его настройки с соответствующим значением --with-python.