GDB ulega awarii z: ImportError: Brak modułu o nazwie libstdcxx.v6.printers

14

Mam problem z GDB. Ilekroć próbuję debugować dowolny program C ++, zaraz po jego uruchomieniu GDB podaje ten błąd:

(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

Następnie GDB kontynuuje działanie (tzn. Nie ulega awarii całkowicie).

Wiem, że istnieje kilka raportów o błędach na ten temat ( tutaj , tutaj i tutaj ). W drugim raporcie jest również twierdzenie, że wydano poprawkę. W trzecim znajduje się obejście dowiązania symbolicznego, które nie zadziałało dla mnie (i którego nie lubię, nawet jeśli zadziałało).

Czy ktoś znalazł rozwiązanie tego problemu? Brakuje paczki?

Uwaga: Mam kompilacje testowe Ubuntu Toolchain (ppa: ubuntu-toolchain-r / test) PPA aktywowane.

errikos
źródło

Odpowiedzi:

7

To jest błąd w /usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py; Gdyby działał poprawnie, zobaczyłbyś tylko ImportErrorraz, a ładne drukarki działałyby.

Zobacz http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=701935#18, aby uzyskać informacje na temat tego, co dzieje się tutaj źle. W Debianie działało to dobrze gcc-4.7, ale do niedawna nie działało w gcc-4.8Debianie. Nie jestem pewien, czy w ogóle tego spróbowałemgcc-4.6 .

Niezależnie od tego możesz załatać ten plik, aby wyglądał we właściwym miejscu.

SamB
źródło
2
Czy możesz podać próbną łatkę?
Fouric
Prawdopodobnie zostało to naprawione przez najnowsze pakiety w ppa: ubuntu-toolchain-r / test, ponieważ nie otrzymuję już tego błędu. Straciłem zainteresowanie tym, ponieważ ostatnio nie robiłem dużo programowania w C / C ++. Dziękuję za odpowiedź!
errikos
Uwaga: Matthias Klose od tego czasu przeniósł odpowiedni plik do miejsca, w którym nie wyzwala on fałszywego ImportErrorw niestabilnej Debianie.
SamB
Jak mogę to załatać?
becko
@becko: Jaka jest dokładnie zainstalowana wersja libstdc ++ 6?
SamB