【问题标题】:-fno-omit-frame-pointer equivalent compiler option for clang-fno-omit-frame-pointer clang 的等效编译器选项
【发布时间】:2017-05-09 08:31:33
【问题描述】:

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

-fno-omit-frame-pointer 不适用于我的 clang。

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

【问题讨论】:

  • 你也使用-g-ggdb或类似的吗?
  • 在我的目标上,我运行剥离的共享库。但是在分析捕获时,我提供了带有调试符号(使用 -g 编译)的未剥离的 so

标签: clang clang++ streamline


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2014-06-07
    • 2013-01-17
    • 2021-03-15
    • 2013-11-12
    • 2019-07-30
    相关资源
    最近更新 更多