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

Ubuntu 14.04, gcc 4.8.4: довольно печатная версия gdb не работает из-за проблемы с Python

Я получаю эту ошибку при запуске программы в gdb:

Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Traceback (most recent call last):
File "/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19-gdb.py", line 63, in <module>
from libstdcxx.v6.printers import register_libstdcxx_printers
ImportError: No module named 'libstdcxx'

Google включил этот отчет об ошибке: http://osdir.com/ml/debian-gcc/2014-02/msg00061.html Этот список отчетов об ошибках используется командой python print sys.path в командной строке gdb. Однако, когда я пытаюсь использовать любой python в подсказке gdb, это происходит:

(gdb) python print sys.path
File "<string>", line 1
print sys.path
        ^
SyntaxError: invalid syntax
Error while executing Python code.

(gdb) python print "Hello"
File "<string>", line 1
print "HellO"
            ^
SyntaxError: invalid syntax
Error while executing Python code.

Я использую Ubuntu 14.04 LTS, соответствующую информацию о версии:

$ gcc --version
gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
$ gdb --version
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
$ python --version
Python 2.7.6

Ясно, что что-то в моей установке нарушено. Это python, gdb или что-то еще?

4b9b3361

Ответ 1

Я отправляю это как ответ, чтобы другим было легче найти его. Ответ от Марка Плотника и webbertiger - это реальный ответ.

Подводя итог, вот что сработало для меня:

  • Создал файл ~/.gdbinit
  • Добавлен python sys.path.append("/usr/share/gcc-4.8/python"); в этот файл

Я использую Eclipse CDT, поэтому я проверил, что этот файл используется в окне > предпочтения > GDB > файл команды GDB.