Ich habe versucht, GDB Pretty Printing (für eine einfachere Arbeit mit Standardcontainern) gemäß dieser Antwort einzurichten . Anstatt Python Pretty Printers Code von SVN zu verwenden, habe ich diejenigen verwendet, die mit Ubuntu geliefert werden . Nachdem ich den Rest des Prozesses durchlaufen hatte, wurde beim Starten von gdb die folgende Fehlermeldung angezeigt:
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.
Nachdem ich mich etwas eingehender mit dem Problem befasst hatte, fand ich heraus, dass die Grundursache tiefer liegt - Python 3, das in gdb verwendet wird, ist nicht mit libstdc ++ - hübschen Druckern kompatibel .
Hat jemand eine funktionale Problemumgehung dafür? Im Moment bin ich mit den (auch nützlichen, aber nicht als funktionalen) Helfern von Dan Marinescu festgefahren: http://www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF
Antworten:
Die einfachste Lösung scheint darin zu bestehen, die hübschen Drucker wie
printers.py
gewohnt einzurichten und dann mit 2to3 in Python3 zu konvertieren:Ich habe es nur kurz getestet, aber es scheint gut zu funktionieren.
quelle