jjzjj

c++ - 让 gprof 从 Qt 调试应用程序读取 gmon.out 输出的问题

我正在尝试分析我正在开发的Qt窗口应用程序,并且已经阅读了使用gprof进行分析的方法。我已经成功地将项目配置为编译并与-pg标志链接以启用分析,并且每次执行应用程序时都会输出gmon.out。但是,当我尝试运行gprof将gmon.out文件转换为可读的txt文件时,我遇到了“gmon.out太短而不能成为gmon文件”的错误消息。我试着用谷歌搜索这个问题的答案,但无济于事。这里也有人问过同样的问题,但没有给出答案。我在Windows7上为此项目使用Qt4.7.4和QtCreator2.3.0以及mingw编译器。我在.pro文件中设置的标志是:#ProfilerflagsCONFI

c++ - 如何读取 gmon.out?

如何在Windows中读取gmon.out?Windows无法打开文件,因此gmon.out选项在命令行窗口中无法正常工作。 最佳答案 gprof是读取gmon.out文件并显示其中信息的工具。 关于c++-如何读取gmon.out?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/6240660/

c - "__gmon_start__"符号是什么?

我正在使用gcchello.c-ohello-O3编译这段代码:#includeintmain(void){printf("Helloworld\n");return0;}当我列出我得到的搬迁时:test@southpark$readelf-rhello|grepgmon080495a400000106R_386_GLOB_DAT00000000__gmon_start__080495b400000107R_386_JUMP_SLOT00000000__gmon_start__当我在这个文件中列出符号时,我得到:test@southpark$readelf-shello|grepgmo

c - "__gmon_start__"符号是什么?

我正在使用gcchello.c-ohello-O3编译这段代码:#includeintmain(void){printf("Helloworld\n");return0;}当我列出我得到的搬迁时:test@southpark$readelf-rhello|grepgmon080495a400000106R_386_GLOB_DAT00000000__gmon_start__080495b400000107R_386_JUMP_SLOT00000000__gmon_start__当我在这个文件中列出符号时,我得到:test@southpark$readelf-shello|grepgmo

linux - 在终止进程之前保存 gmon.out

我想使用gprof来分析守护进程。我的守护进程使用第3方库,它注册了一些回调,然后调用一个永远不会返回的main函数。我需要调用kill(SIGTERM或SIGKILL)来终止守护进程。不幸的是,gprof的手册页说明如下:Theprofiledprogrammustcall"exit"(2)orreturnnormallyfortheprofilinginformationtobesavedinthegmon.outfile.有没有办法保存被SIGTERM或SIGKILL杀死的进程的分析信息? 最佳答案 首先,我要感谢@wally

c++ - 使用分析标志编译的代码不会生成 gmon.out

我使用分析标志(-pg)用gcc编译了一个代码,但是当我运行该程序时,没有生成gmon.out。我编译了一个测试代码--实际上,是来自this的代码问题--查看编译标志和gprof是否有效,是的,它有效。为了编译代码(名为xrttimetag),使用了以下行(下面我使用了-I(...)和-L(...)以隐藏大量指向其他科学图书馆的路径):gcc-c-o./xrttimetag.o-Wall--pedantic-Wno-comment-Wno-long-long-pg-fPIC-I(...)-DPACKAGE_NAME=""-DPACKAGE_TARNAME=""-DPACKAGE_VE

c++ - 当可执行文件派生另一个可执行文件时,不会创建 gmon.out

我正在使用gprof进行分析。但是,当我在使用选项-pg编译的主可执行文件中派生另一个可执行文件时,不会创建gmon.out。知道如何解决它。 最佳答案 Butgmon.outisnotcreatedwhenIforkanotherexecutable应该是吧。它与所有其他gmon.out文件具有相同的名称。它们只是默默地相互覆盖。GNU以其无限的智慧,建议您要分析的每个子进程都在其自己的当前目录中执行。根据需要在代码中使用mkdir和chdir。由于gmon.out是在进程结束时写出的,因此在调用exit之前只需要chdir。我还

c++ - 用 gcc -pg -g 编译后没有写 gmon.out

使用gcc-pg-g编译了一个C++程序(至少,那些是我在Makefile中给出的参数;没有任何确凿的证据表明执行了什么命令)。程序运行正常完成,CWD设置为我的主目录。没有写入gmon.out文件。gcc是4.4.7。操作系统是centos6。我的程序是由使用fork/exec的手动Perl守护程序启动的。我已经验证了CWD是我的主目录,并且它是可写的,方法是让守护进程在执行我的目标程序之前执行touchfoo。就我能够研究的而言,这不应该影响程序的分析或在终止时(正常情况下)写入gmon.out。 最佳答案 遇到同样的问题,Ce

c++ - 当我使用 g++ 使用 -pg 标志编译时,未创建 gmon.out

我在MacOSX版本10.8.5(MountainLion)上运行。我有以下简单的C++代码。main.cpp:#includeintmain(){std::cout我正在尝试让gprof在我的计算机上工作。作为manual建议,我在终端中输入以下两行:g++-g-pgmain.cpp-oa.out./a.out然而,这并没有像预期的那样生成gmon.out文件。当我尝试在终端中输入gprof时,它会说:gprof:can'topen:gmon.out(Nosuchfileordirectory)这是意料之中的,因为gmon.out不存在...关于我做错了什么有什么想法吗?编辑:其他一