GDB se bloque avec: ImportError: aucun module nommé libstdcxx.v6.printers

14

J'ai un problème avec GDB. Chaque fois que j'essaie de déboguer un programme C ++, juste après l'avoir exécuté, GDB donne cette erreur:

(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

Après cela, GDB continue de fonctionner (c'est-à-dire qu'il ne plante pas complètement).

Je suis conscient qu'il existe plusieurs rapports de bogues à ce sujet ( ici , ici et ici ). Dans le deuxième rapport, il est également affirmé qu'un correctif a été publié. Dans le troisième, il y a une solution de contournement symlink, qui n'a pas fonctionné pour moi (et que je n'aime pas, même si cela a fonctionné).

Quelqu'un a-t-il trouvé une solution pour cela? Un paquet manquant?

Remarque: J'ai les versions de test Ubuntu Toolchain (ppa: ubuntu-toolchain-r / test) PPA activées.

errikos
la source

Réponses:

7

C'est un bug dans /usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py; s'il fonctionnait correctement, vous ne verriez qu'une seule ImportErrorfois, et les jolies imprimantes fonctionneraient.

Voir http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=701935#18 pour des informations sur ce qui ne va pas ici. Cela fonctionnait bien dans Debian gcc-4.7, mais jusqu'à récemment, cela ne fonctionnait pas dans gcc-4.8Debian. Je ne sais pas si j'ai même essayé cela avec gcc-4.6.

Quoi qu'il en soit, vous pouvez corriger ce fichier pour le rechercher au bon endroit.

SamB
la source
2
Pourriez-vous fournir un exemple de patch?
Fouric
Cela a probablement été corrigé par les derniers packages de ppa: ubuntu-toolchain-r / test, car je ne reçois plus cette erreur. J'avais perdu tout intérêt à cela car je n'ai pas fait beaucoup de développement C / C ++ récemment. Merci pour votre réponse!
errikos
Remarque: Matthias Klose a depuis déplacé le fichier correspondant à un endroit où il ne déclenche plus les parasites ImportErrordans Debian unstable.
SamB
Comment puis-je corriger cela?
Becko
@becko: Quelle est votre version installée exacte de libstdc ++ 6?
SamB