1.簡介
Valgrind工具集提供一系列調試和分析工具,使用戶的程序運行更快更正確。其中最流行的工具是Memcheck,它能夠檢測到在C/C++程序中可能導致崩潰和不可預測的諸多內存相關錯誤!
2.程序準備
使用Gcc編譯器,同時加上-g參數進行;以使Memcheck發現的錯誤能包含準確的行號。儘量不要使用-O+優化等級數的形式進行優化,這可能導致程序運行更緩慢,或者導致產生不準確的錯誤信息。
3.運行程序
運行方式:
如果你的程序運行的方式爲: program arg1 arg2
那麼使用命令行的形式:
valgrind --leak-check=yes program arg1 arg2
如:valgrind ./example //valgrind 的命令參數可自行選擇
valgrind運行的消息顯示形式
消息形式爲
==pid== some-message-from-Valgrind
4.valgrind命令常用參數:
--leak-check = yes 開啓 內存泄漏檢測
--tool=[tools_of_valgrind]
--gen-suppressions=yes 開啓錯誤抑制,防止產生過多無關的錯誤
--log-file=[filename] 將日誌消息寫入指定的文件中
5.valgrind提供的其他工具
valgrind軟件包提供諸多的工具在不同的方面對程序進行調試和分析,常見的插件工具有:
Memcheck:內存錯誤檢測器,查找一些隱藏的bugs,是系統默認的工具
Cachegrind :緩存和分支預測分析器,使用戶成尋運行更快
Helgrind:多線程錯誤檢測器
Massif:堆棧分析器,使用戶程序佔用更少的內存
其他工具有:Callgrind、DRD、DHAT、SGcheck、BBV等
6.valgrind的安裝
官網地址:http://valgrind.org/ 下載相應的安裝包
#tar -jzf valgrind-xxxxxx.tar.bz2
#cd valgrind-xxxxx
#./configrue //缺少相關的依賴,請自行處理!
#make
#make install
------完畢!