歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下檢測內存洩漏工具Valgrind

Linux下檢測內存洩漏工具Valgrind

日期:2017/2/28 14:28:19   编辑:Linux教程

1.Valgrind簡介

1.在我們編寫C/C++的時候,最常見的錯誤之一就是內存洩露,這樣的問題其實跟程序員的編程習慣密不可分。如果你在申請內存空間之後能夠馬上在合適的位置釋放內存。會極大程度的避免內存洩漏的情況。但是人非聖賢,孰能無過。有時候我們確實忘記釋放內存而導致了比較嚴重的錯誤,所以這個時候我們需要借助valgrind這個工具來判斷內存洩漏。

Valgrind 是一款 Linux下(支持 x86、x86_64和ppc32)程序的內存調試工具,它可以對編譯後的二進制程序進行內存使用監測(C語言中的malloc和free,以及C++中的new和delete),找出內存洩漏問題。

Valgrind 中包含的 Memcheck 工具可以檢查以下的程序錯誤:

使用未初始化的內存 (Use of uninitialised memory)

使用已經釋放了的內存 (Reading/writing memory after it has been free’d)

使用超過malloc分配的內存空間(Reading/writing off the end of malloc’d blocks)

對堆棧的非法訪問 (Reading/writing inappropriate areas on the stack)

申請的空間是否有釋放 (Memory leaks – where pointers to malloc’d blocks are lost forever)

malloc/free/new/delete申請和釋放內存的匹配(Mismatched use of malloc/new/new [] vs free/delete/delete [])

src和dst的重疊(Overlapping src and dst pointers in memcpy() and related functions)

重復free

Linux下Valgrind的使用概述 http://www.linuxidc.com/Linux/2012-08/67990.htm

Linux下利用Valgrind工具進行內存洩露檢測和性能分析 http://www.linuxidc.com/Linux/2012-06/63754.htm

Ubuntu 內存洩漏檢測工具Valgrind的安裝 http://www.linuxidc.com/Linux/2011-12/49988.htm

Valgrind--Linux下的內存調試和代碼解剖工具 http://www.linuxidc.com/Linux/2011-06/36907.htm

應用 Valgrind 發現 Linux 程序的內存問題[圖文] http://www.linuxidc.com/Linux/2008-11/17502.htm

2.valgrind的使用實例:

1.在官網上找到valgrind的tar包:

解壓,編譯。完成後make安裝:

編譯到制定位置:

安裝valgrind:

完成之後我們就可以對系統中的程序進行檢測了,首先我們用ls顯示根目錄下的文件,ls命令是沒有內存洩漏的:

更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-09/106299p2.htm

Copyright © Linux教程網 All Rights Reserved