附加到我的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寻找什么来表示堆栈的顶部,我应该在我创建的新任务堆栈上放置什么来帮助它?
发布于 2013-11-18 14:15:34
一种方法是在DWARF CFI信息中终止堆栈。
特别是对于ARM,gas提供了一个".cantunwind“指令来实现这一点。在其他架构上,我认为使用cfi_undefined来标记帧指针更为正常。
https://stackoverflow.com/questions/19969990
复制相似问题