我正在使用标准的gcc 4.4软件包在64位CentOS 5.8上开发一个静态链接的64位C++应用程序。它似乎比我预期的使用更多的内存,所以我尝试使用massif来分析内存使用情况。我已经编译了调试信息,然后在MyProg所在的目录下运行
valgrind --tool=massif ./MyProg
它没有产生任何结果,只出现以下massif.out.XXXX示例。
desc: (none)
cmd: ./MyProg
time_unit: i
#-----------
snapshot=0
#-----------
time=0
mem_heap_B=0
mem_heap_extra_B=0
mem_stacks_B=0
heap_tree=empty
请注意,那就是文件的全部内容,我的程序可能运行数分钟。
我已经尝试过各种valgrind和massif选项,但都没有用。我甚至尝试使用MyProg的绝对路径,以防万一。我尝试下载最新稳定版本的valgrind(3.8.1)并编译和运行它(因为CentOS正在使用3.5.0),但结果相同。作为一个健全的检查,我运行了
valgrind --tool=massif ls -l
它生成了多个非零内存使用量的快照,正如预期。
我尝试使用我能想到的每个关键字的组合在网上搜索,但没有找到任何类似的问题。
顺便说一句,如果有用的话,我可以成功地使用valgrind的默认memcheck工具对应用程序进行分析。
有人知道为什么massif不能对我的应用程序进行分析吗?