gpt4 book ai didi

c++ - gdb - 获取真正的崩溃行

转载 作者:太空宇宙 更新时间:2023-11-04 12:08:16 25 4
gpt4 key购买 nike

我的多线程程序崩溃了。我有 .core 文件。我加载它,thread apply all backtrace 并为崩溃的线程获取以下输出:

Thread 1 (Thread 0x8567800 (runnable)):
#0 GG::serialize (this=0x847c180, outbin=@0xbf2f7c30)
at basic_string.h:269

好的,序列化时崩溃,但报告它发生在 STL basic_string.h:269

但是如何在 serialize() 函数处获取实际的崩溃行呢?

最佳答案

如果崩溃是可重现的,最简单的方法是重新编译错误代码并禁用内联(在 g++ 中,这是 -fno-inline-fno-default-inline).

如果你非要分析你的核心,试着找出调用了string中的什么方法,并在你的serialize函数中找到相应的调用。

有时,除了反汇编您的函数并稍微检查一下以找出汇编代码的哪些部分与您的源代码相对应之外,没有其他方法可以找到问题所在。然后,要找出局部变量的值,您必须执行 info registers,并跟踪将哪些值移入了哪些寄存器。

关于c++ - gdb - 获取真正的崩溃行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11024736/

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