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¤t=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