当可执行文件派生另一个可执行文件时,不会创buildgmon.out

我正在使用gprof进行分析。 但是当我在用选项-pg编译的主可执行文件中分出另一个可执行文件时,gmon.out不会被创build。 任何想法如何解决它。

但是当我fork另一个可执行文件时,gmon.out不会被创建

这可能是。 它只与所有其他gmon.out文件具有相同的名称。 他们只是默默地覆盖对方。

GNU以其无穷的智慧,建议您想要配置的每个子进程都在其当前目录中执行。 根据需要在代码中使用mkdirchdir 。 由于gmon.out在进程完成时被写出,所以在调用exit之前只需要chdir

我也建议看valgrind 。 除了其他好东西外,它的输出文件名为something.somethingelse.$PID

当您设置GMON_OUT_PREFIX=some_file_name环境变量时,gprof将为每个子进程创建名为some_file_name.pid其他gmon文件。