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