使用GDB进行漂亮打印无法显示容器值

时间:2013-12-19 12:12:09

标签: c++ python stl gdb cython

我有Ubuntu 13.10和GDB 7.6.1,我从http://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/下载了STL_pretty_printers并按照说明运行它。

当我第一次运行gdb时,我收到了一条python Traceback消息,上面写着:

  

引发ValueError,“无法解析元组树中的2个以上节点。”

在对代码进行一些修补之后,我发现所有引发的ValueError行都应该更改为

  

引发ValueError(“无法解析元组树中的2个以上节点。”)

之后我尝试运行一个小测试程序(填充向量),当我尝试显示向量的内容时,我得到了

  

Python异常iter()返回类型为'_iterator'的非迭代器:

1 个答案:

答案 0 :(得分:-1)

我尝试搜索解决方案但没有用,因为某些原因python告诉我_iterator类没有支持“python iterator protocol”。实际上没有理由我拉了一些头发之后我决定尝试坚持“Cython Iterator Protocol”。

出于某种原因......它有效!

所以

如果你遇到同样的问题,那就是stl_pretty_printers for Cython

的github

我仍然想找出问题发生的原因,如果有人有想法请在这里回复。