-fno-omit-frame-pointer用于clang的等效编译器选项

我想使用DS-5 Streamline分析器来分析我的代码.在文档中提到,为了能够看到调用堆栈,我们需要使用编译器选项-fno-omit-frame-pointer来编译代码.这个选项在 gcc中.

铿锵还有同等的选择吗?

-fno-omit-frame-pointer对我来说不适用于clang.

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

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

问题最终是,至少在x86-64 Linux上,Clang需要-fno-omit-frame-pointer和-mno-omit-leaf-frame-pointer,以获得与gcc仅提供的相同的行为 – FNO-省略帧指针.请参阅此LLVM错误:“Need both -fno-omit-frame-pointer and -mno-omit-leaf-frame-pointer to get a fp on linux on a leaf function”

点赞