如何使用带有“-fomp”和“-pg -fprofile-create”的 gcc/gprof 分析 c++?

Posted

技术标签:

【中文标题】如何使用带有“-fomp”和“-pg -fprofile-create”的 gcc/gprof 分析 c++?【英文标题】:How can I profile c++ using gcc/gprof with "-fomp" and "-pg -fprofile-create"? 【发布时间】:2013-09-23 21:14:35 【问题描述】:

我很困惑是否可以在启用 OpenMP 的情况下使用 gcc 为 gprof 编译/链接分析构建。就我的谷歌搜索显示而言,gcc 文档似乎对此事保持沉默。在实验上,仅添加 -fomp 开关会导致启动时出现 SIGPROF 错误。

我也不清楚http://projekt17.pub.lab.nm.ifi.lmu.de/ompp/downloads/$pkgname-$pkgver.tgz 是否有任何帮助,因为包含的文档仅指带有简单文件的 icc。如果这是可能的,如何将它添加到现有的构建系统中? [注意:我是一个自学成才的新手,从事一个爱好项目,请明确。谢谢。]

【问题讨论】:

【参考方案1】:

根据您到目前为止所说的,我会说您看到的是 OpenMP 和分析运行时库之间的信号处理程序食物之争——分析运行时使用 POSIX 分析计时器,它生成SIGPROF 过期,但 OpenMP 运行时在设置信号处理程序时使用默认处理程序破坏了进程的 SIGPROF 处理程序。

OpenMP 本身似乎提供了某种分析 API,但 GCC 对它的支持是 on the back burner。

【讨论】:

以上是关于如何使用带有“-fomp”和“-pg -fprofile-create”的 gcc/gprof 分析 c++?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用带有路径的“开始”和带有空格的命令在 Windows 中创建批处理文件

如何使用带有 Kotlin 的 Room 和 moshi 持久化带有 JSON 数组的 JSON 对象

如何使用带有继承和模板的朋友类

如何使用角度和离子制作带有固定标题的可滚动表格

如何使用带有 setResultTransformer 和标量的 Hibernate 存储过程

如何使用 C++ 解析带有 ParameterName 和 ParameterValue 的 XML