Eclipse CDT prettyprint坏了

时间:2014-01-06 15:23:03

标签: gdb eclipse-cdt pretty-print

我正在使用Ubuntu 13.10,Eclipse Kepler Service Release 1,GDB 7.6.1-ubuntu以及通过Eclipse“安装新软件”提供的最新CDT。我按照几个站点上发布的说明为STL容器设置了漂亮的打印。

由于它没有以这种方式工作,按照其他说明我修改了printers.py以使字符串len最大化为100并格式化所有引发ValueError,“...”以引发ValueError(“...” )。

我的.gdbinit文件如下:

python
import sys
sys.path.insert(0, '/home/fbence/stlPrettyPrinter')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end

我的设置如下:

http://fbence.web.elte.hu/setup.png

如果我转到调试按钮,它将我的配置设置为第一个,它似乎也使用它(否则我不需要更改printers.py我认为),但调试为...是空的。

gbd跟踪包含以下消息:

193,677 36 ^ error,msg =“无法获得子迭代器”。

193,674 35 ^ done,name =“var5”,numchild =“0”,value =“{static npos =,_ M_dataplus = {> = {< __ \ gnu_cxx :: new_allocator> = {},},_ M_p = 0x0}}“,type =”std :: stri \ NG”时,线程ID = “1”,displayhint = “字符串”,动态= “1”,has_more = “0”

这是输出: http://fbence.web.elte.hu/eclipseproblem.png

当我想打印一个简单的向量时,使用终端中的gdb会产生以下输出:

Python Exception <class 'TypeError'> iter() returned non-iterator of type '_iterator':

$3 = std::vector of length 6, capacity 16

显然,我的问题是,我该如何解决这个问题?没有漂亮的印刷,我只想在Windows下调试,但我真的不想这样做:)

1 个答案:

答案 0 :(得分:3)

gdb libstdc ++漂亮的打印机现在在Ubuntu 13.10中实际上已被破坏。例如,请参阅this bug

gdb在Ubuntu 13.10中与Python3链接,而漂亮的打印机脚本仅支持Python2语法。您可以将this patch应用于漂亮的打印机。它将增加对Python3的支持。虽然我没有使用Eclipse进行调试,但这个解决方案对我有用。