我正在使用gprof进行性能分析。但是当我在使用选项-pg编译的主可执行文件中分叉另一个可执行文件时,不会创建gmon.out。知道如何解决它。
答案 0 :(得分:4)
但是当我分叉另一个可执行文件时,不会创建gmon.out
可能会这样。它只是与所有其他gmon.out
文件同名。他们只是默默地互相覆盖。
GNU以其无限的智慧,建议您要分析的每个子进程都在其自己的当前目录中执行。根据需要在代码中使用mkdir
和chdir
。由于gmon.out
是在流程结束时写出来的,因此只需chdir
拨打exit
。
我还建议您查看valgrind
。除了其他好处之外,它的输出文件名为something.somethingelse.$PID
。
答案 1 :(得分:3)
当您设置GMON_OUT_PREFIX=some_file_name
环境变量时,gprof将为每个子进程创建名为some_file_name.pid
的其他gmon文件。