任何方式来指定configuration文件数据的位置

configuration文件是从可执行文件中运行的默认文件,名为gmon.out 。 有什么办法指定一个新的位置?

我在i386 / linux2.6上使用gcc 3.4.6

太糟糕了,环境变量GMON_OUT_PREFIX没有记录在glibc中。 我从网上获得了以下信息并在我的机器上进行了测试。

如果设置了环境变量GMON_OUT_PREFIX ,那么输出文件被命名为${GMON_OUT_PREFIX}.[PID] ,pid是配置文件进程的ID。

例如:

 GMON_OUT_PREFIX=mygmon; gcc -o foo -pg foo.c 

gmon输出文件是: mygmon.12345 ,假设foo进程id = 12345。

jscoot的解决方案为我工作。 但在执行时设置GMON_OUT_PREFIX非常重要,而不是在编译时。

上周我遇到了同样的问题,我用下面的方法解决了这个问题。 这里的想法是将进程当前目录更改为您要生成gmon.out文件的任何位置。 文件名不能用这种方式改变。 它允许您更改可以保存文件的位置。

 #ifdef GPROF /* so we can gprof */ if (1) { char tmpdir[32]; snprintf(tmpdir, 32, "/tmp/%05d", mypid); mkdir(tmpdir, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH); chdir(tmpdir); } #endif 

给gprof一个不同的文件名:

 gprof a.out gprof-foo.out 

至于重命名它们,请设置GMON_OUT_PREFIX环境变量。 我在libc上找到了一个好的ol'objdump ….自然,libc文档没有说什么。