1. 程式人生 > >10、valgrind記憶體分析

10、valgrind記憶體分析

1、下載安裝
window  下載  http://www.valgrind.org/downloads/

linux      下載  wget http://www.valgrind.org/downloads/valgrind-3.8.1.tar.bz2
2、編譯安裝
./configure;

make;

make install

sudo apt-get install automake wget gcc g++ tcl expect
wget http://www.valgrind.org/downloads/valgrind-3.14.0.tar.bz2
tar -jxvf valgrind-3.14.0.tar.bz2
cd valgrind-3.14.0
./autogen.sh
./configure 
make -j 8
sudo make install

驗證安裝成功
3、編譯程式
被檢測程式加入 –g   -fno-inline 編譯選項保留除錯資訊。

4、valgrind --leak-check=full  --show-reachable=yes  --log-file=a.log ./shdaily.fcgi "op=search&date=2011-04-14&current=4"

 

glib使用如下:

G_SLICE=always-malloc valgrind --tool=memcheck --leak-check=full --leak-resolution=high --num-callers=20  ./egg2Utest "ItfTest"

 

常用命令詳解:

G_DEBUG=gc-friendly

G_SLICE=always-malloc     //glib有快取  故需使用

上述兩條設定環境變數 G_SLICE和G_DEBUG排除由記憶體分配機制帶來的影響

--tool=memcheck     //使用valgrind的memcheck功能

-show-reachable=yes    //是否檢測控制範圍之外的洩漏,比如全域性指標、static指標等

--log-file=a.log      //結果輸出到檔案

--leak-check=full      //顯示具體程式碼中洩漏的地方

--leak-resolution=high     //

--num-callers=20

 通用命令

G_SLICE=always-malloc G_DEBUG=gc-friendly valgrind --tool=memcheck --leak-check=full --leak-resolution=high --num-callers=20 --show-reachable=yes --log-file=a.log  ./app