如何使用带有“-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 对象