Configurer la jolie impression GDB dans Ubuntu 13.10

8

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

nietaki
la source
J'ai deux questions: Premièrement, Ask Ubuntu est-il le bon endroit, et pourquoi? Deuxièmement, n'est-ce pas un bug de l'application? Dans les deux cas, c'est hors sujet!
Lucio
Comment est-ce hors sujet? J'ai lié un bogue confirmé et de grande importance du tableau de bord Ubuntu qui provoque mon problème et j'ai demandé une solution de contournement. Si quelqu'un utilisant 13.10 réussissait, je pourrais certainement utiliser sa solution. J'ai vérifié avec un ami qui est sur Gentoo et ce problème ne les affecte pas.
nietaki
2
Il existe un correctif non engagé pour faire fonctionner les imprimantes avec Python 3 sur gcc.gnu.org/ml/libstdc++/2013-10/msg00243.html
Jonathan Wakely

Réponses:

8

La solution la plus simple semble être de configurer les jolies imprimantes comme d'habitude, puis de les convertir printers.pyen python3 en utilisant 2to3:

2to3 printers.py -w

Je ne l'ai testé que brièvement, mais cela semble bien fonctionner.

dshepherd
la source