Настройка симпатичной печати GDB в Ubuntu 13.10

8

Я попытался настроить красивую печать GDB (для облегчения работы со стандартными контейнерами) в соответствии с этим ответом . Вместо того, чтобы использовать код для симпатичных принтеров Python из SVN, я использовал те, которые поставляются с Ubuntu . После прохождения остальной части процесса я запустил следующее сообщение об ошибке при запуске 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.

Посмотрев немного глубже в проблему, я обнаружил, что коренная причина лежит глубже - Python 3, используемый в gdb, несовместим с симпатичными принтерами libstdc ++ .

У кого-нибудь есть функциональный обходной путь для этого? На данный момент я застрял с (также полезными, но не такими функциональными) помощниками от Дана Маринеску: http://www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF

nietaki
источник
У меня есть два вопроса: во-первых, является ли Ask Ubuntu правильным местом и почему? Во-вторых, не является ли это ошибкой приложения? В обоих случаях это не по теме!
Лусио
Как это не по теме? Я связал подтвержденную ошибку высокой важности с панели запуска Ubuntu, которая вызывает мою проблему, и попросил обойти ее. Если кто-нибудь, использующий 13.10, получит эту работу, я, безусловно, смогу использовать их решение. Я проверил с другом, который находится на Gentoo, и эта проблема не затрагивает их.
nietaki
2
На gcc.gnu.org/ml/libstdc++/2013-10/msg00243.html
Джонатан Уэйкли,

Ответы:

8

Кажется, проще всего настроить обычные принтеры как обычно, а затем преобразовать их printers.pyв python3, используя 2to3:

2to3 printers.py -w

Я только кратко проверил, но, кажется, работает нормально.

dshepherd
источник