【问题标题】:How does gdb (Thumb-2) know where the top of the stack is?gdb (Thumb-2) 如何知道栈顶在哪里?
【发布时间】:2013-11-14 05:06:42
【问题描述】:

附加到我的 Cortex-M3 代码的 GDB 给我的堆栈跟踪如下所示:

#0  0x00000992 in zeptos_mod_svc ()
#1  0x00000d36 in Uart_ReadChar (uart=3) at src/zeptos/drivers/uart.c:60
#2  0x00000d6c in gsmgps_entry () at src/vectr/gsmgps.c:13
#3  0x00000000 in ?? ()

它们很有用,但我想做正确的事并消除最后的条目。 GDB 在寻找什么来指示堆栈的顶部,我应该在我创建的新任务堆栈上放置什么来帮助它?

【问题讨论】:

    标签: gdb arm stack-trace cortex-m3


    【解决方案1】:

    一种方法是终止 DWARF CFI 信息中的堆栈。

    特别是对于 ARM,gas 提供了一个“.cantunwind”指令来执行此操作。在其他架构上,我认为使用 cfi_undefined 标记帧指针更正常。

    【讨论】:

      猜你喜欢
      • 2023-01-12
      • 1970-01-01
      • 2016-11-04
      • 1970-01-01
      • 2017-10-09
      • 2010-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多