GDB stürzt ab mit: ImportError: Kein Modul mit dem Namen libstdcxx.v6.printers

14

Ich habe ein Problem mit GDB. Immer wenn ich versuche, ein C ++ - Programm zu debuggen, gibt GDB diesen Fehler aus:

(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

Danach läuft GDB weiter (dh stürzt nicht vollständig ab).

Mir ist bekannt, dass es dazu mehrere Fehlerberichte gibt ( hier , hier und hier ). Im zweiten Bericht wird außerdem behauptet, dass ein Fix veröffentlicht wurde. In der dritten gibt es eine Problemumgehung für Symlinks, die bei mir nicht funktioniert hat (und die mir auch dann nicht gefällt, wenn sie funktioniert hat).

Hat jemand eine Problemumgehung dafür gefunden? Fehlt ein Paket?

Hinweis: Ich habe die Ubuntu Toolchain Test Builds (ppa: ubuntu-toolchain-r / test) PPA aktiviert.

Errikos
quelle

Antworten:

7

Dies ist ein Fehler in /usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py; Wenn es richtig funktioniert, wird es nur ImportErroreinmal angezeigt, und die hübschen Drucker funktionieren.

Unter http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=701935#18 finden Sie Informationen dazu, was hier falsch läuft. Dies funktionierte in Debian einwandfrei gcc-4.7, funktionierte aber bis vor kurzem nicht in gcc-4.8Debian. Ich bin mir nicht sicher, ob ich es überhaupt versucht habe gcc-4.6.

Egal, Sie können diese Datei zu sehen an der richtigen Stelle patchen.

SamB
quelle
2
Könnten Sie einen Beispiel-Patch bereitstellen?
Fouric
Dies wurde wahrscheinlich durch die neuesten Pakete in ppa behoben: ubuntu-toolchain-r / test, da ich diesen Fehler nicht mehr bekomme. Ich hatte das Interesse daran verloren, da ich in letzter Zeit nicht viel an C / C ++ - Entwicklung gearbeitet habe. Vielen Dank für Ihre Antwort!
Errikos
Hinweis: Matthias Klose hat die relevante Datei seitdem an einen Ort verschoben, an dem sie ImportErrorin Debian unstable nicht mehr die Fälschung auslöst .
SamB
Wie kann ich das patchen?
Becko
@becko: Was ist Ihre genau installierte Version von libstdc ++ 6?
SamB