在Ubuntu 13.10中设置GDB漂亮打印


8

我尝试根据此anwer设置GDB漂亮打印(以便更轻松地使用标准容器)。我没有使用svn的python漂亮打印机代码,而是使用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.

在更深入地研究问题之后,我发现了更深层次的根源-gdb中使用的Python 3与libstdc ++漂亮打印机不兼容

有人对此有功能性的解决方法吗?目前,我只停留在Dan Marinescu的(也很有用,但不起作用)助手中:http : //www.yolinux.com/TUTORIALS/GDB-Commands.html#STLDEREF


我有两个问题:首先,问Ubuntu是否正确,为什么?其次,这不是应用程序的错误吗?在两种情况下,它都是题外话!
Lucio 2014年

这离题如何?我从Ubuntu启动板中链接了一个已确认的,非常重要的bug,该bug 导致了我的问题,并要求解决方法。如果使用13.10的任何人都能正常工作,我当然可以使用他们的解决方案。我与一位使用Gentoo的朋友进行了核对,这个问题并不影响他们。
nietaki 2014年

Answers:


8

最简单的解决方法似乎是正常设置漂亮的打印机,然后printers.py使用2to3 转换为python3:

2to3 printers.py -w

我仅对其进行了简短的测试,但它似乎工作正常。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.