gpt4 book ai didi

python - 用于 STL 的 gdb pretty-print 抛出 "TypeError"

转载 作者:太空狗 更新时间:2023-10-29 11:37:32 25 4
gpt4 key购买 nike

我关注了STL Support Tools并发现它在我的系统上不起作用。我使用 gnome Ubuntu 14.04。我试过这个:

(gdb) p vct
Python Exception <class 'TypeError'> iter() returned non-iterator of type '_iterator':
$1 = std::vector of length 20, capacity 32

它抛出一个“TypeError”,并且只打印长度和容量。我的 g++ 和 gdb 版本:

g++ --version
g++ (Ubuntu 4.8.2-19ubuntu1) 4.8.2
gdb --version
GNU gdb (Ubuntu 7.7-0ubuntu3.1) 7.7

我的.gdbinit:

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

请帮帮我,非常感谢。

最佳答案

sys.path.insert(0,'/home/james/bin/gdb_printers/python')

你是怎么得到/home/james/bin/gdb_printers/python的?

假设您按照 wiki 上的(不准确的)说明进行了操作:

svn co svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python

您现在拥有匹配最新 libstdc++ 源(又名“主干”)的 pretty-print ,而您的libstdc++ 本身已超过岁,来自 gcc-4.8

要获得正确的 pretty-print ,您需要从匹配的 gcc 分支中获得它们。我相信正确的命令是:

svn co svn://gcc.gnu.org/svn/gcc/branches/gcc-4_8-branch/libstdc++-v3/python

关于python - 用于 STL 的 gdb pretty-print 抛出 "TypeError",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24352541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com