繁体   English   中英

用-pg编译的gcc不会产生gprof所需的二进制文件

[英]gcc compiling with -pg doesn't produce binary needed for gprof

我遇到了一个小问题,需要一些帮助。 作为测试的一部分,我想在一些OpenMP和MPI混合代码上运行gprof。 我了解gprof依赖于使用-pg开关编译gcc(或mpicc)时创建的二进制文件。

我尝试添加此开关,并且编译成功(因为未报告任何错误),但是,未创建二进制文件,而是按常规方式创建了可执行文件。 我也尝试过在使用pthreads的更简单的代码上执行此操作,结果相同。

请检查以下内容,让我听听您的想法。

gcc -pg --std=gnu99 -pthread -Wall -o pthreadsv0 pthreads.c

我怀疑您提到的二进制文件实际上是配置文件数据文件( gmon.out ),它是在运行程序时生成的(必须使用-pg标志进行编译)。 只需执行您的程序,看看是否有gmon.out文件。

使用-pg选项编译 执行程序时,将创建gprof信息。 尝试运行您的程序。 (您正在分析(gprof)程序的执行)

-pg compile选项添加了执行程序时创建概要分析信息所必需的逻辑。 如果需要或需要多次执行该程序,则允许“插入”代码将描述逻辑流和时序的数据写入gmon.out文件。

遇到同样的问题。 之所以出现此问题,是因为我用Ctrl-C而不是适当的退出来关闭程序的执行(在我的情况下,关闭GUI窗口)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM