展开导致分段故障

unwind causing segmentation fault

提问人:Proy 提问时间:3/1/2022 更新时间:3/1/2022 访问量:334

问:

我正在使用 backward-cpp (https://github.com/bombela/backward-cpp) 打印堆栈跟踪。但是,这会产生分段错误。以下是堆栈的 gdb 跟踪:

0x00007ffff608e357 in _Unwind_Backtrace () from /lib/x86_64-linux-gnu/libgcc_s.so.1
(gdb) bt full
#0  0x00007ffff608e357 in _Unwind_Backtrace () from /lib/x86_64-linux-gnu/libgcc_s.so.1
No symbol table info available.
#1  0x000055555567225c in backward::details::Unwinder<backward::StackTraceImpl<backward::system_tag::linux_tag>::callback>::operator() (this=0x7ffff7ee7410, f=..., depth=32)
    at inc/backward.hpp:814
No locals.
#2  0x000055555566d66a in backward::details::unwind<backward::StackTraceImpl<backward::system_tag::linux_tag>::callback> (f=..., depth=32) at inc/backward.hpp:857
        unwinder = {_f = 0x7ffff7ee7408, _index = 13, _depth = 32}
#3  0x00005555556666d2 in backward::StackTraceImpl<backward::system_tag::linux_tag>::load_here (this=0x7ffff7ee74c0, depth=32, context=0x0, error_addr=0x0) at inc/backward.hpp:875
        trace_cnt = 140732520194072

我用 -g 编译了代码。如何解决该问题?

C++ 分段 - 故障 堆栈 - 展开

评论

0赞 user4581301 3/1/2022
空指针总是让我毛骨悚然。我想知道是否或重要。context=0x0error_addr=0x0
0赞 user4581301 3/1/2022
您是否因为程序失败或即将死亡而获取堆栈跟踪?如果是这样,它是否因为开卷机无法处理的堆垛溢出或堆垛损坏而死亡?
0赞 Proy 3/1/2022
不,否则代码不会死亡。我有兴趣在某些函数调用期间获取调用上下文。

答: 暂无答案