J'ai essayé de mettre en place une jolie impression GDB (pour un travail plus facile avec des conteneurs standard) selon cette réponse . Au lieu d'utiliser le joli code d'imprimantes python de svn, j'ai utilisé celles fournies avec ubuntu . Après avoir suivi le reste du processus, je me suis retrouvé avec le message d'erreur suivant lors du lancement de 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.
Après avoir examiné un peu plus en profondeur le problème, j'ai découvert que la cause profonde est plus profonde - Python 3 utilisé dans gdb est incompatible avec les jolies imprimantes libstdc ++ .
Quelqu'un at-il une solution de contournement fonctionnelle pour cela? Pour l'instant, je suis coincé avec les aides (également utiles, mais pas aussi fonctionnelles) de Dan Marinescu: http://www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF
Réponses:
La solution la plus simple semble être de configurer les jolies imprimantes comme d'habitude, puis de les convertir
printers.py
en python3 en utilisant 2to3:Je ne l'ai testé que brièvement, mais cela semble bien fonctionner.
la source