在展开堆栈之前获取回溯
get the backtrace before unwinding the stack
我的进程没有在调试器上运行,而是在发生崩溃时生成一个核心文件。更新:由于异常而发生崩溃。从 throw(( 中,即使在 main(( 范围内也没有处理它。
当我附加它并在调试器中运行它时,它确实会正确生成回溯,但在核心文件中它不会。
问题可能是操作系统在传递控制权终止之前展开堆栈,因此当终止生成 SIGABT 时,它没有关于前一个堆栈的此类信息。
我正在为压力记忆测试而崩溃,所以我无法在 gdb 下解决这个问题。
怎么办?任何四处走动
问题可能是操作系统在传递控制权以终止之前展开堆栈
Linux 操作系统不做这样的事情。
您没有提供相关详细信息,但核心转储中"错误"堆栈跟踪的两个最常见原因是:
- 用完
ulimit -c
并获取截断的核心转储,或者 - 尝试使用与用于生成它的库不同的系统库来分析
core
。如果您在不同的计算机上生成和分析core
,或者如果您在两者之间升级了系统库,则可能会发生这种情况。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- C++为构建时间获取QDateTime的可靠方法
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 使用指针从C++中的数组中获取最大值
- 如何获取std::result_of函数的返回类型
- 如何在openssl-ecc中获取十六进制格式的私钥
- 使用Unreal C++获取VR耳机的世界位置/方向
- 获取日期异步信号安全吗?如果在信号处理程序中使用,它会导致死锁吗
- 从C字符串中获取奇怪的字符串长度
- 为什么我的for循环不能正确获取argv
- 从python中调用C++函数并获取返回值
- 在远程嵌入式设备上使用核心文件的 GDB - 如何获取有关回溯的更多信息?
- 如何展开堆栈以获取指定堆栈指针(SP)的回溯
- 如何同时获取 what() 和回溯跟踪未捕获的异常
- 如何从谷歌测试中的异常中获取回溯信息
- 在展开堆栈之前获取回溯
- c++获取不同线程的回溯
- Android NDK:获取回溯
- 获取静态二进制文件的AOSP回溯