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
Respuestas:
La solución más fácil parece ser configurar las impresoras bonitas de forma normal, pero luego convertirlas
printers.py
a python3 usando 2to3:Solo lo probé brevemente, pero parece funcionar bien.
fuente