我正在尝试分析我正在开发的Qt窗口应用程序,并已经阅读了使用gprof进行概要分析的方法。我已经成功地将项目配置为编译并链接到-pg标志,以启用分析,并在每次执行应用程序时输出gmon.out。但是,当我试图运行gprof将gmon.out文件转换为可读的txt文件时,我遇到了"gmon.out太短而不是gmon文件“的错误消息。我试着在谷歌上搜索这个问题的答案,但没有结果。有人在这里也问了同样的问题,但没有给出答案。
在此项目中,我使用QT4.7.4和QtCreator2.3.0,并在Windows 7上使用MIMW编译器。
我在.pro文件中设置的标志是:
# Profiler flags
CONFIG += DEBUG
QMAKE_CXXFLAGS_DEBUG += -pg
QMAKE_CXXFLAGS_MT_DBG += -pg
QMAKE_LFLAGS_DEBUG += -pg
下面是我从命令提示符中调用gprof的方式:
C:\QtSDK\mingw\bin>gprof "C:\Qt exe\debug\QtGUI.exe“> profile.txt
以及错误消息: gmon.out: file太短,不能成为gmon文件。
我还检查了gmon.out的文件大小;每次运行调试应用程序时,文件大小大约为520 kb。这真的太短了吗?不能作为gmon文件吗?
发布于 2012-02-22 05:38:00
在运行gprof时,如果省略输出文件的名称,则gprof假定默认名称为"gmon.out“。此文件应位于运行gprof的同一文件夹中。
因此,在运行程序时,请检查正在运行的文件夹中是否正确地生成了输出文件gmon.out。还请注意目录,因为您可以在这里阅读
gmon.out' file is written in the program's current working directory at the time it exits. This means that if your program calls chdir, the
gmon.out的文件将留在您的程序chdir要到的最后一个目录中。如果您没有在此目录中写入的权限,则不会写入该文件。
(出发地:http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html )
在这种情况下,可以将输出文件路径指定为:
C:\QtSDK\mingw\bin>gprof QtGUI.exe path_to_outfile\gmon.out > profile.txt
希望这能有所帮助。
再见!
https://stackoverflow.com/questions/9187379
复制相似问题