C++内存检测
1.valgrind的安裝使用
1.1 簡介
Valgrind是linux環境下開發應用程序時用于內存調試和性能分析的工具集,其中Memcheck工具可以用來檢查C/C++程序中的內存操作錯誤。本文列舉了幾種常見的內存操作錯誤以及Memcheck工具的檢測結果,其中包括以下幾種類型:
使用未初始化的內存
內存讀寫越界
內存覆蓋
讀寫已經釋放的內存
內存泄露
無法檢測出靜態內存越界的問題(如果一個棧上的數組,訪問越界,無法檢測出來的)
1.2安裝
下載 :wget http://valgrind.org/downloads/valgrind-3.12.0.tar.bz2
解壓: tar -jxvf valgrind-3.12.0.tar.bz2
? ? ? ? ?cd valgrind-3.12.0
? ? ? ? ./configure
? ? ? ? make?
? ? ? ? make install
1.3使用
?######? ? ? ? ? ?為了使Valgrind發現的錯誤更精確,能夠定位到源代碼行,在編譯源程序時需要加上-g參數:
參數解釋
definitely lost
直接。確認泄露,程序運行結束后,沒有指向該內存的指針。
indirectly lost
間接。確認泄露,指向該內存的指針,位于內存泄露處。
possibly lost
可能泄露,如一個指向某塊內存中間的指針。這種指針一般開始時指向內存頭部,后來移動到了內存中間,可能這個指針和內存根本沒有關系。
Valgrind的其他工具:
下面的這篇博客給出了連接,不再贅述
內存問題排查工具 --- valgrind - CobbLiu - 博客園
================================================================================================
參考博客:
《valgrind之內存調試》_浮生專欄-CSDN博客_valgrind調試
內存問題排查工具 --- valgrind - CobbLiu - 博客園
總結
- 上一篇: android 发送UDP广播,搜寻服务
- 下一篇: Linux搭建samba文件共享服务器,