(list-parti-6ren">
gpt4 book ai didi

c++ - 使用 gdb 调试在问号函数 "?? ()"中显示段错误

转载 作者:行者123 更新时间:2023-11-28 00:29:21 29 4
gpt4 key购买 nike

我一直在尝试使用 gdb 调试段错误,但它显示错误发生在“?? ()”这一步,我无法弄清楚其含义。任何人都可以提示这是什么意思?

相关的回溯在下面发布。

(gdb) run
> (list-partition gt3 (quote (1 2 3 4 5)))

Program received signal SIGSEGV, Segmentation fault. 0xb7d900ac in ?? () from /lib/i386-linux-gnu/libc.so.6

(gdb) bt 10
#0 0xb7d900ac in ?? () from /lib/i386-linux-gnu/libc.so.6
#1 0xb7d92dec in malloc () from /lib/i386-linux-gnu/libc.so.6
#2 0xb7f8d627 in operator new(unsigned int) () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#3 0xb7f727d4 in std::string::_Rep::_S_create(unsigned int, unsigned int, std::allocator<char> const&) () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#4 0xb7f74a48 in char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#5 0xb7f74bb6 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) () from /usr/lib/i386-linux-gnu/libstdc++.so.6
#6 0x080527fa in SymbolCell::get_symbol (this=0x80641e0) at SymbolCell.cpp:63
#7 0x080524c2 in SymbolCell::get_value (this=0x80641e0) at SymbolCell.cpp:88
#8 0x08053c20 in ConsCell::get_value (this=0x8064190) at ConsCell.cpp:195
#9 0x0804f287 in eval_pure (c=0x8064190) at eval_util.cpp:683 (More stack frames follow...)

另外值得注意的是,程序实际上运行了几秒钟才产生这个bug,这在程序行为的上下文中是相当不正常的。

感谢任何建议!提前致谢!

最佳答案

??() 表示gdb找不到符号信息。对于您的问题,这不是必需的,因为堆栈已经深入库代码并且 string/new/malloc 已经过良好测试。从 SymbolCell::get_symbol 的第 6 帧开始查找问题。

编辑:我刚刚注意到您实际上正在运行 lisp 代码,因此您可能遇到了 lisp 环境的一些问题,或者更可能是内存不足。

关于c++ - 使用 gdb 调试在问号函数 "?? ()"中显示段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23516590/

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