我想用DS-5 Streamline profiler
来描述我的代码。在文档中提到,为了能够看到调用堆栈,我们需要使用编译器选项-fno-omit-frame-pointer
编译代码。这个选项在gcc中。铿锵还有同等的选择吗?
-fno-omit-frame-pointer
不和我一起工作。
我也尝试将编译器优化级别设置为0,但我仍然没有在流线型中获得调用堆栈。
看起来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错误:"Need both -fno-omit-frame-pointer and -mno-omit-leaf-frame-pointer to get a fp on linux on a leaf function"