Сбой GDB с: ImportError: Нет модуля с именем libstdcxx.v6.printers

14

У меня проблема с GDB. Всякий раз, когда я пытаюсь отладить любую программу на C ++, сразу после ее запуска GDB выдает такую ​​ошибку:

(gdb) run
Starting program: /home/errikos/Workspaces/tests/a.out 
Traceback (most recent call last):
  File "/usr/lib/debug/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18-gdb.py", line 59, in <module>
    from libstdcxx.v6.printers import register_libstdcxx_printers
ImportError: No module named libstdcxx.v6.printers
Traceback (most recent call last):
  File "/usr/lib/debug/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.18-gdb.py", line 59, in <module>
    from libstdcxx.v6.printers import register_libstdcxx_printers
ImportError: No module named libstdcxx.v6.printers

После этого GDB продолжает работать (т.е. не падает полностью).

Я знаю, что есть несколько сообщений об ошибках ( здесь , здесь и здесь ). Во втором отчете также утверждается, что выпущено исправление. В третьем, есть обходной путь символической ссылки, который не работал для меня (и который мне не нравится, даже если он работал).

Кто-нибудь нашел обходной путь для этого? Есть пропавшая посылка?

Примечание: у меня активирован тестовый билд Ubuntu Toolchain (ppa: ubuntu-toolchain-r / test) PPA.

errikos
источник

Ответы:

7

Это ошибка в /usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py; если бы он работал правильно, вы бы увидели только ImportErrorодин раз, и симпатичные принтеры сработали бы.

Смотрите http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=701935#18 для получения дополнительной информации о том, что здесь происходит не так. Это работало нормально в Debian gcc-4.7, но до недавнего времени не работало в gcc-4.8Debian. Я не уверен, если я даже попробовал это с gcc-4.6.

Несмотря на это, вы можете исправить этот файл, чтобы посмотреть в нужном месте.

Самба
источник
2
Не могли бы вы предоставить образец патча?
четыре
Вероятно, это было исправлено последними пакетами в ppa: ubuntu-toolchain-r / test, так как я больше не получаю эту ошибку. Я потерял к этому интерес, так как в последнее время мало занимаюсь разработкой на C / C ++. Спасибо за ваш ответ, хотя!
errikos
Примечание. С тех пор Матиас Клозе переместил соответствующий файл в такое место, где он больше не вызывает ложные срабатывания ImportErrorв нестабильной версии Debian.
SamB
Как я могу исправить это?
Беко
@becko: Какая у вас точно установленная версия libstdc ++ 6?
SamB