Tentei configurar a impressão bonita do GDB (para um trabalho mais fácil com contêineres padrão) de acordo com essa resposta . Em vez de usar o código python para impressoras bonitas do svn, usei os que acompanham o ubuntu . Depois de passar pelo resto do processo, acabei com a seguinte mensagem de erro ao iniciar o 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.
Depois de analisar um pouco mais profundamente o problema, descobri a causa raiz mais profunda - o Python 3 usado no gdb é incompatível com as bonitas impressoras libstdc ++ .
Alguém tem uma solução funcional para isso? Por enquanto, estou preso aos ajudantes (também úteis, mas não tão funcionais) de Dan Marinescu: http://www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF
Respostas:
A correção mais fácil parece ser configurar as impressoras bonitas como normal, mas depois converter
printers.py
para python3 usando 2to3:Eu testei apenas brevemente, mas parece funcionar bem.
fonte