当gdb无法确定堆栈帧的大小时,如何使用gdb获取回溯?

当gdb无法确定堆栈帧的大小时,如何使用gdb获取回溯?,gdb,Gdb,我遇到了一个核心,无法从中得到回溯。我有两个问题 我能从电话中找出导致车祸的线路或车祸发生的地点吗 列出命令输出 否则怎么处理。我应该设置什么样的篱笆柱才能得到一些 有意义的数据。我尝试将其设置为0,但没有成功 (gdb)英国电信 0 0x00e67a24英寸??() 警告:GDB在0xe67a24处找不到函数的开头 GDB is unable to find the start of the function at 0xe67a24 因此无法确定该函数堆栈帧的大小。 这意味着GDB可能无法访

我遇到了一个核心,无法从中得到回溯。我有两个问题

  • 我能从电话中找出导致车祸的线路或车祸发生的地点吗 列出命令输出
  • 否则怎么处理。我应该设置什么样的篱笆柱才能得到一些 有意义的数据。我尝试将其设置为0,但没有成功 (gdb)英国电信

    0 0x00e67a24英寸??() 警告:GDB在0xe67a24处找不到函数的开头

    GDB is unable to find the start of the function at 0xe67a24
    
    因此无法确定该函数堆栈帧的大小。 这意味着GDB可能无法访问该堆栈帧,或者 下面的框架。 此问题很可能是由无效的程序计数器或 堆栈指针。 然而,如果您认为GDB应该只在更远的地方搜索 来自0xe67a24的代码,看起来像 函数,您可以使用`set`增加搜索范围 “篱笆哨所”命令。
    (gdb)

    当我看到这个问题时,一个解决方法是命令:

    x/100a$sp

    这将使用符号转储堆栈,并且很可能在最近的回溯部分会出现。它仍然找不到实际的当前堆栈帧,但应该找到带有符号的最新堆栈帧

    根据目标体系结构,$sp可能需要是其他的东西——不管堆栈指针是什么寄存器


    对于我来说,gdb找不到调用堆栈的最常见情况是OpenGL驱动程序中的崩溃,该驱动程序不使用预期的ARM ABI调用约定。

    我遇到了相同的错误,结果是另一个问题的症状:我没有向gdb提供文件,因此无法构建符号表。通过
    gdb filename
    启动它,而不仅仅是
    gdb
    也解决了这个问题。

    你能得到注册信息吗?@kumar\u m\u kiran,是的,我能得到注册信息。