使用 -pg 编译时更改 gmon.out 文件的名称 [重复]

Posted

技术标签:

【中文标题】使用 -pg 编译时更改 gmon.out 文件的名称 [重复]【英文标题】:Change the name of gmon.out file when compiling with -pg [duplicate] 【发布时间】:2022-01-12 16:29:44 【问题描述】:

是否可以将文件 gmon.out 的默认名称更改为例如 [executable name].gmon.out,该文件是在使用 gcc 编译时设置配置文件标志 (-pg) 时创建的?

我需要这个,因为我有多个可执行文件,它们位于同一目录中,并且必须并行运行。

【问题讨论】:

【参考方案1】:

不是那么短,但实际上答案是肯定的——如果使用glibc(至少使用版本 2.11.1,这是我用来测试的版本)。

要让您的-pg 编译和链接的可执行文件创建不同的名称,而不是默认的gmon.out,只需将环境变量GMON_OUT_PREFIX 设置为您选择的值,分析输出将写入[value of your choice].[pid] 其中@ 987654326@是分析数据所属进程的进程ID。

【讨论】:

有点晚了,但非常感谢您的回答。我会记住这一点。 :) 你应该真的接受这个答案,另一个根本就是假的。【参考方案2】:

简而言之,不。使用 -pg 命令编译程序后,通过运行程序创建的分析文件始终称为 gmon.out。但是,一旦生成,您可以安全地将其重命名为其他名称(例如 foo.bar)并稍后使用以下命令对其进行分析:

gprof test.exe foo.bar > analysis.txt

【讨论】:

感谢您的努力。由于这是不可能的,我现在正在使用 cachegrind 和 valgrind 进行分析。这对我有用。

以上是关于使用 -pg 编译时更改 gmon.out 文件的名称 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 gcc 编译时没有创建分析数据

使用 gprof 出错

gprof 和 eclipse 错误

如何使用 Graphviz 获取节点和边数

如何使用 gprof 分析守护进程而不优雅地终止它?

打开的文件太多 c