国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

Unix下C程序內(nèi)存泄漏檢測工具Valgrind的安裝與使用詳解

2020-01-26 15:57:08
字體:
供稿:網(wǎng)友
Valgrind是一款用于內(nèi)存調(diào)試、內(nèi)存泄漏檢測以及性能分析的軟件開發(fā)工具。
Valgrind的最初作者是Julian Seward,他于2006年由于在開發(fā)Valgrind上的工作獲得了第二屆Google-O'Reilly開源代碼獎。
Valgrind遵守GNU通用公共許可證條款,是一款自由軟件。

官網(wǎng)
http://www.valgrind.org
 
下載與安裝
#wget http://www.valgrind.org/downloads/valgrind-3.8.1.tar.bz2
#tar xvf valgrind-3.8.1.tar.bz2
#cd valgrind-3.8.1
#./configure --prefix=/usr/local/webserver/valgrind
#make
#make install

測試代碼
復(fù)制代碼 代碼如下:

#include <stdlib.h>
int* func(void)
{
   int* x = malloc(10 * sizeof(int));
   x[10] = 0;  //問題1: 數(shù)組下標越界
}                 
 int main(void)
{
   int* x=NULL;
   x=func();
   //free(x); 
   x=NULL;
   return 0;   //問題2: 內(nèi)存沒有釋放
 }

編譯
#gcc -g -o test test.c

內(nèi)存檢查
#valgrind --tool=memcheck --leak-check=yes --show-reachable=yes ./test

報告:


說明
Invalid write of size 4:表示數(shù)組越界寫了4字節(jié)
40 bytes in 1 blocks:表示因程序退出而發(fā)生內(nèi)存泄露40字節(jié)

修復(fù)bug,重新檢查提示已經(jīng)沒有內(nèi)存泄露



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

使用未初始化的內(nèi)存 (Use of uninitialised memory)
使用已經(jīng)釋放了的內(nèi)存 (Reading/writing memory after it has been free'd)
使用超過malloc分配的內(nèi)存空間(Reading/writing off the end of malloc'd blocks)
對堆棧的非法訪問 (Reading/writing inappropriate areas on the stack)
申請的空間是否有釋放 (Memory leaks

主站蜘蛛池模板: 安溪县| 师宗县| 绩溪县| 银川市| 连城县| 平乡县| 永宁县| 南乐县| 黄龙县| 邳州市| 连江县| 滦南县| 武宣县| 繁昌县| 莱芜市| 蓬溪县| 普兰县| 横山县| 海丰县| 湖北省| 肃南| 湖北省| 高尔夫| 五大连池市| 阳信县| 西青区| 都匀市| 太谷县| 旺苍县| 施秉县| 元阳县| 银川市| 噶尔县| 麻城市| 北海市| 卓资县| 陆川县| 仪陇县| 察雅县| 汤原县| 宁波市|