7

我想用来DS-5 Streamline profiler分析我的代码。在文档中提到,为了能够看到调用堆栈,我们需要使用编译器选项编译代码-fno-omit-frame-pointer。这个选项在 gcc 中有。铿锵也有等效的选择吗?

-fno-omit-frame-pointer铿锵声不适合我。

我也尝试将编译器优化级别设置为 0,但我仍然没有得到流线型的调用堆栈。

4

1 回答 1

7

看起来 DS-5 是 ARM 的东西,所以这可能不相关,但我遇到了类似的问题,试图从使用 Linux 的perf profiler的 clang 编译的可执行文件中获取良好的堆栈跟踪。

问题最终是,至少在 x86-64 Linux 上,Clang 需要两者-fno-omit-frame-pointer -mno-omit-leaf-frame-pointer才能获得与 gcc 相同的行为-fno-omit-frame-pointer。请参阅此 LLVM 错误:“需要 -fno-omit-frame-pointer 和 -mno-omit-leaf-frame-pointer 才能在 linux 上的叶函数上获取 fp”

于 2017-12-17T01:30:07.627 回答