Valgrind簡介:
Valgrind是動態分析工具的框架。有很多Valgrind工具可以自動的檢測許多內存管理和多進程/線程的bugs,在細節上剖析你的程序。你也可以利用Valgrind框架來實現自己的工具。
Valgrind通常包括6個工具:一個內存錯誤偵測工具,兩個線程錯誤偵測工具,cache和分支預測的分析工具,堆的分析工具。
Valgrind的使用與CPU OS以及編譯器和C庫都有關系。目前支持下面的平台:
- x86/Linux
- AMD64/Linux
- PPC32/Linux
- PPC64/Linux
- ARM/Linux
- x86/MacOSX
- AMD64/MacOSX
Valgrind是GNU v2下的開源軟件,你可以從http://valgrind.org下載最新的源代碼。
Valgrind的安裝:
1.從http://valgrind.org下載最新的valgrind-3.7.0.tar.bz2d,用tar -xfvalgrind-3.7.0.tar.bz2解壓安裝包。
2.執行./configure,檢查安裝要求的配置。
3.執行make。
4.執行make install,最好是用root權限。
5.試著valgrind ls -l來檢測是否正常工作。
Valgrind的概述:
Valgrind時建立動態分析工具的框架。它有一系列用於調試分析的工具。Valgrind的架構是組件化的,所以可以方便的添加新的工具而不影響當前的結構。
下面的工具是安裝時的標准配置:
Memcheck:用於檢測內存錯誤。它幫助c和c++的程序更正確。
Cachegrind:用於分析cache和分支預測。它幫助程序執行得更快。
Callgrind:用於函數調用的分析。
Helgrind:用於分析多線程。
DRD:也用於分析多線程。與Helgrind類似,但是用不同的分析技術,所以可以檢測不同的問題。
Massif:用於分析堆。它幫助程序精簡內存的使用。
SGcheck:檢測棧和全局數組溢出的實驗性工具,它和Memcheck互補使用。