Stacktrace arm-linux-gcc

时间:2012-06-02 17:10:04

标签: gcc stack-trace arm

我想转储我的程序的堆栈跟踪,如backtrace[3]中演示的示例,但我得到了下面的结果。

我正在使用 linux 2.6 arm-linux-gcc 4.3.2

运行:
arm-linux-gcc prog.c -o prog -rdynamic

结果是:

  

backtrace()返回1个地址

     

/lib/ld-linux.so.3 [0x40025000]

你能帮我解决这个问题吗?

由于


我对gcc没有任何问题,但是我无法用arm-linux-gcc获取痕迹。

1 个答案:

答案 0 :(得分:1)

根据GCC ARM Options documentation,您需要将 -mapcs-frame 选项传递给GCC,以便在ARM平台上生成堆栈帧。

  

-mapcs-frame
  为所有函数生成符合ARM过程调用标准的堆栈帧,即使这对于正确执行代码不是绝对必要的。使用此选项指定 -fomit-frame-pointer 会导致不为叶函数生成堆栈帧。默认值为 -mno-apcs-frame

我在对Linux specific answerHow to generate a stacktrace when my gcc C++ app crashes的评论中向我指出了这一点,您可能会发现这些评论很有用。