我遇到了一点问题,需要一些帮助。作为我的测试的一部分,我想在一些 OpenMP 和 MPI 混合代码上运行 gprof。我知道 Gprof 依赖于二进制文件,该文件是在编译 GCC(或 mpicc)时使用 -pg 选项创建的。我尝试添加这个选项,编译成功(没有报错),但是二进制文件没有被创建,只生成了可执行文件。我也尝试在更简单的使用 pthreads 的代码上进行操作,结果相同。请查看下面的内容,并告诉我你的想法。gcc -pg --std=gnu99 -pthread -Wall -o pthreadsv0 pthreads.c GCC使用-pg编译时无法生成Gprof所需的二进制文件。
在使用-pg选项编译后,当您执行程序时,Gprof信息将被创建。尝试运行您的程序(您正在对程序的执行进行分析(Gprof))。 -pg编译选项添加了必要的逻辑,以在程序执行时创建分析信息。多次执行程序(如果需要),允许“插装”的代码将描述逻辑流和时间的数据写入gmon.out文件。
-pg
选项编译程序后,执行程序时会创建gprof信息。尝试运行您的程序。(您正在对程序的执行进行分析(gprof)) - lornix