我想使用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”