GDB si arresta in modo anomalo con: ImportError: nessun modulo denominato libstdcxx.v6.printers


14

Ho un problema con GDB. Ogni volta che provo a eseguire il debug di qualsiasi programma C ++, subito dopo averlo eseguito, GDB dà questo errore:

(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

Successivamente, GDB continua a funzionare (cioè non si arresta completamente).

Sono consapevole che ci sono diverse segnalazioni di bug al riguardo ( qui , qui e qui ). Nel secondo rapporto, si afferma anche che è stata rilasciata una correzione. Nel terzo, c'è una soluzione alternativa al collegamento simbolico, che non ha funzionato per me (e che non mi piace, anche se ha funzionato).

Qualcuno ha trovato una soluzione alternativa per questo? Qualche pacchetto mancante?

Nota: ho i build di test Ubuntu Toolchain (ppa: ubuntu-toolchain-r / test) PPA attivato.

Risposte:


7

Questo è un bug in /usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py; se funzionasse correttamente, vedresti solo ImportErroruna volta e le graziose stampanti funzionerebbero.

Vedi http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=701935#18 per alcune informazioni su cosa non va qui. Funzionava bene su Debian gcc-4.7, ma fino a poco tempo fa non funzionava gcc-4.8su Debian. Non sono sicuro se ho anche provato questo con gcc-4.6.

Indipendentemente da ciò, è possibile patchare quel file per cercare nel posto giusto.


2
Potresti fornire una patch di esempio?
Fouric

Ciò è stato probabilmente risolto dagli ultimi pacchetti in ppa: ubuntu-toolchain-r / test, poiché non ricevo più questo errore. Avevo perso interesse per questo dato che ultimamente non ho fatto molto sviluppo C / C ++. Grazie per la tua risposta però!
Errikos,

Nota: Da allora Matthias Klose ha spostato il file pertinente in un posto dove non fa più scattare lo spurio ImportErrorin Debian unstable.
SamB

Come posso patchare questo?
becko

@becko: qual è la tua versione installata esatta di libstdc ++ 6?
SamB,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.