我正在使用CentOS存儲庫中的標準gcc 4.4軟件包在64位CentOS 5.8上開發一個靜態鏈接的64位C++應用程序。它似乎使用了比我預期更多的內存,所以我嘗試使用地塊來分析內存使用情況。我已經編譯調試信息,然後運行Valgrind的地塊工具不會剖析我的應用程序
的valgrind --tool =從那裏MYPROG所在的目錄地塊./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 =地塊的ls -l
和它產生的多個快照具有非零的內存使用情況按預期方式。
我試過使用關鍵字的每個組合都可以在網上搜索,但我沒有發現任何類似的問題。作爲一個方面說明,我可以使用valgrind的默認memcheck工具成功分析應用程序,以防萬一這是有用的信息。
有誰知道爲什麼地塊將無法分析我的應用程序?
您的程序是靜態鏈接的嗎?如果你做了'ldd ./MyProg',它列出了一堆共享庫,還是不打印任何內容? –
它是靜態鏈接的。我編輯了這個問題來澄清這一點。 – Tyson