Valgrind是一款應(yīng)用運行時診斷工具,自動檢測內(nèi)存管理和線程的bug,用于內(nèi)存調(diào)試、內(nèi)存泄漏檢測以及性能分析,遵守GNU通用公共許可證條款。
Valgrind功能介紹
1、Valgrind 是一個運行時診斷工具,它可以監(jiān)視一個指定程序的活動并通知你在你的代碼中可能存在的各種各樣的內(nèi)存管理問題。
2、它類似于老式的 Electric Fence 工具(該工具將標準的內(nèi)存分配函數(shù)替換為自己的函數(shù)以提高診斷能力),但被認為更容易使用并且在多個方面都提供了更豐富的功能——而且現(xiàn)在大多 數(shù)主流 Linux 發(fā)行版都提供了該工具,所以在你的系統(tǒng)中使用它不需要花費太多時間,你只需安裝它的軟件包即可。
Valgrind安裝與使用方法
一、 安裝
1. autoconf
# wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
# tar -zxvf autoconf-2.69.tar.gz
# cd autoconf-2.69
# ./configure
# make; make install
2. automake
# wget http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz
# tar -zxvf automake-1.14.tar.gz
# cd automake-1.14
# ./bootstrap.sh
# ./configure
# make; make install
3. valgrind
# wget http://valgrind.org/downloads/valgrind-3.9.0.tar.bz2
# tar -jxvf valgrind-3.9.0.tar.bz2
# cd valgrind-3.9.0
# ./autogen.sh
# ./configure
# make; make install
二、快速使用指南
1. 簡介
Valgrind是一款用于內(nèi)存調(diào)試、內(nèi)存泄漏檢測以及性能分析的軟件工具套裝。
它最流行的工具是Memcheck, 它能檢測C/C++中大部分的內(nèi)存相關(guān)的錯誤。
2. 準備要檢查的程序
程序編譯時使用 “-g”參數(shù),以添加調(diào)試信息,這樣Memcheck的錯誤消息可以精確到行;
編譯時使用“-O0”也有必要,只是速度會很慢,“-O1”可能會導(dǎo)致Memecheck的錯誤消息不正確;
3. 在Memcheck下運行程序:
如果你的程序的運行命令如下:
myprog arg1 arg2
則使用如下命令行:
valgrind --leak-check=yes myprog arg1 arg2
Memcheck是valgrind默認的工具,"--leak-check"選項開啟了詳細內(nèi)存泄漏檢測器;
這時程序會比平時運行得慢很多(如,慢20~30倍),并且會消耗更多的內(nèi)存;
程序運行結(jié)束后,或你用“CTRL+C”中止程序后,Memcheck將會列出檢測到的內(nèi)存出錯和泄漏的信息;
Valgrind更新日志
部分更新內(nèi)容:
電源已添加對 ISA 3.0 的支持;
Solaris 端口改進和豐富;
添加了對 MacOS 10.12(Sierra)的初步支持;
抑制條目中的最大呼叫者數(shù)現(xiàn)在等于 --num -callers(500)的最大大小;
改進了執(zhí)行大量丟棄的程序的性能指令地址范圍為8KB或更小。
- PC官方版
- 安卓官方手機版
- IOS官方手機版