GDB se bloquea con: ImportError: ningún módulo llamado libstdcxx.v6.printers

14

Tengo un problema con GDB. Cada vez que intento depurar cualquier programa C ++, justo después de ejecutarlo, GDB da este error:

(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

Después de eso, GDB continúa ejecutándose (es decir, no se bloquea por completo).

Soy consciente de que hay varios informes de errores sobre esto ( aquí , aquí y aquí ). En el segundo informe, también hay una afirmación de que hay una solución lanzada. En el tercero, hay una solución alternativa de enlace simbólico, que no funcionó para mí (y que no me gusta, incluso si funcionó).

¿Alguien ha encontrado una solución para esto? ¿Falta algún paquete?

Nota: Tengo las compilaciones de prueba Ubuntu Toolchain (ppa: ubuntu-toolchain-r / test) PPA activadas.

errikos
fuente

Respuestas:

7

Esto es un error en /usr/lib/debug/usr/lib/$triple/libstdc++.so.6.0.18-gdb.py; si funcionara correctamente, solo vería ImportErroruna vez, y las impresoras bonitas funcionarían.

Consulte http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=701935#18 para obtener información sobre lo que está sucediendo aquí. Esto funcionó bien en Debian gcc-4.7, pero hasta hace poco no funcionaba en gcc-4.8Debian. No estoy seguro si incluso probé esto con gcc-4.6.

De todos modos, puede parchear ese archivo para que se vea en el lugar correcto.

SamB
fuente
2
¿Podría proporcionar un parche de muestra?
cuatro
Esto probablemente ha sido solucionado por los paquetes más recientes en ppa: ubuntu-toolchain-r / test, ya que ya no obtengo este error. Había perdido interés en esto ya que no había estado haciendo mucho desarrollo C / C ++ últimamente. ¡Gracias por tu respuesta!
errikos
Nota: Matthias Klose desde entonces ha movido el archivo relevante a un lugar donde ya no activa lo espurio ImportErrorinestable en Debian.
SamB
¿Cómo puedo parchear esto?
Becko
@becko: ¿Cuál es su versión exacta instalada de libstdc ++ 6?
SamB