Configurando a impressão bonita de GDB no Ubuntu 13.10

8

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

nietaki
fonte
Eu tenho duas perguntas: Primeiro, o Ask Ubuntu é o lugar certo e por quê? Segundo, isso não é um bug do aplicativo? Nos dois casos, é fora de tópico!
Lucio
Como é isso fora de tópico? Vinculei um bug confirmado de alta importância na barra de lançamento do Ubuntu que causa o meu problema e solicitei uma solução alternativa. Se alguém usando 13.10 conseguiu esse trabalho, certamente poderia usar a solução deles. Eu verifiquei com um amigo que está no Gentoo e esse problema não os afeta.
Nietaki
2
Há um remendo não confirmadas para fazer a impressoras de trabalho com Python 3 no gcc.gnu.org/ml/libstdc++/2013-10/msg00243.html
Jonathan Wakely

Respostas:

8

A correção mais fácil parece ser configurar as impressoras bonitas como normal, mas depois converter printers.pypara python3 usando 2to3:

2to3 printers.py -w

Eu testei apenas brevemente, mas parece funcionar bem.

dshepherd
fonte