【问题标题】:Core dump show only one stack frame核心转储仅显示一个堆栈帧
【发布时间】:2017-11-11 07:02:20
【问题描述】:

我遇到了崩溃,应用程序是用符号编译的。当我运行 gdb 时,我只得到一个堆栈帧

应用程序使用共享库,并且一些共享库被剥离。 以下是我运行 bt full 时 GDB 的输出:

(gdb) bt full
#0  0x78461f68 in ?? ()
Cannot access memory at address 0x24

任何人都可以帮助我如何进一步处理这种情况。我如何知道我的应用程序的哪个呼叫在此地址结束。

【问题讨论】:

  • Cannot access memory at address 0x24 显然是错误的。某些东西正在执行疯狂的读/写;您在第三个虚拟函数中,在 C++ 中使用 NULL this 指针等...您需要提供更多信息,例如您的编程语言以及地址 0x78461f68 加载的内容。

标签: linux debugging crash gdb core


【解决方案1】:

我如何知道我的应用程序的哪个呼叫在此地址结束。

最可能的原因是堆栈溢出/堆栈损坏。

您应该使用Address Sanitizer(适用于最新版本的 Clang 和 GCC)来检测您的应用程序——它非常适合直接指出问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多