我想转储我的程序的堆栈跟踪,作为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 获得跟踪。
我想转储我的程序的堆栈跟踪,作为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 获得跟踪。
根据GCC ARM Options 文档,您需要将-mapcs-frame选项传递给 GCC 以在 ARM 平台上生成堆栈帧。
-mapcs-frame
为所有函数生成一个符合 ARM 过程调用标准的堆栈帧,即使这对于正确执行代码并不是绝对必要的。使用此选项指定-fomit-frame-pointer会导致不为叶函数生成堆栈帧。默认值为-mno-apcs-frame。
在对我的Linux 特定回答How to generate a stacktrace when my gcc C++ app crash的评论中向我指出了这一点,您可能也会发现它很有用。