gpt4 book ai didi

debugging - 为什么 gdb 回溯在捕获系统调用时只显示一帧?

转载 作者:行者123 更新时间:2023-12-04 00:08:00 24 4
gpt4 key购买 nike

我正在尝试查找正在运行的程序的源代码中使用某些系统调用的所有位置。我设置了如下断点:

catch syscall socketcall

...运行良好。但是,当实际命中某个断点时,回溯总是看起来一样:

(gdb) bt
#0 __cp_end () at src/thread/i386/syscall_cp.s:25

这就是她写的全部内容!为什么 GDB 不能遍历堆栈并显示一直到 main 的完整堆栈跟踪?

最佳答案

Why can't GCC walk the stack and show a full stacktrace going all the way up to main?

很可能是因为 syscall_cp.s 中的手写程序集缺少展开描述符,并且没有使用帧指针。 GDB 需要其中之一。另见 this answer .

关于debugging - 为什么 gdb 回溯在捕获系统调用时只显示一帧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29764951/

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