-fno-omit-frame-pointer相当于clang的编译器选项

Arp*_*wal 5 clang clang++ streamline

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

-fno-omit-frame-pointer 对我不起作用。

我也尝试将编译器优化级别设置为0,但是仍然无法简化调用堆栈。

Jas*_*ton 6

看起来 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”