Configurar la impresión bonita de GDB en Ubuntu 13.10

8

Traté de configurar una bonita impresión GDB (para un trabajo más fácil con contenedores estándar) de acuerdo con esta respuesta . En lugar de usar el código de impresoras bonitas de python de svn, usé los que se envían con ubuntu . Después de pasar por el resto del proceso, terminé con el siguiente mensaje de error al iniciar gdb:

For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "/home/nietaki/gdb_printers/python/libstdcxx/v6/printers.py", line 54
    raise ValueError, "Cannot find type %s::%s" % (str(orig), name)
                    ^
SyntaxError: invalid syntax
/home/nietaki/.gdbinit:6: Error in sourced command file:
Error while executing Python code.

Después de profundizar un poco más en el problema, descubrí que la causa raíz es más profunda: Python 3 utilizado en gdb es incompatible con las impresoras bonitas libstdc ++ .

¿Alguien tiene una solución funcional para eso? Por ahora estoy atascado con los ayudantes (también útiles, pero no tan funcionales) de Dan Marinescu: http://www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF

nietaki
fuente
Tengo dos preguntas: primero, ¿es Ask Ubuntu el lugar correcto y por qué? Segundo, ¿no es esto un error de la aplicación? En ambos casos, ¡está fuera de tema!
Lucio
¿Cómo es esto fuera de tema? Enlacé un error confirmado de gran importancia desde la plataforma de lanzamiento de Ubuntu que causa mi problema y solicité una solución alternativa. Si alguien que usa 13.10 funcionara, ciertamente podría usar su solución. Verifiqué con un amigo que está en Gentoo y este problema no les afecta.
nietaki
2
Hay un parche sin confirmar para que las impresoras funcionen con Python 3 en gcc.gnu.org/ml/libstdc++/2013-10/msg00243.html
Jonathan Wakely

Respuestas:

8

La solución más fácil parece ser configurar las impresoras bonitas de forma normal, pero luego convertirlas printers.pya python3 usando 2to3:

2to3 printers.py -w

Solo lo probé brevemente, pero parece funcionar bien.

dshepherd
fuente