最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2013年08月13日 09:08:17   作者:  
以下是對(duì)Unix下C程序內(nèi)存泄漏檢測(cè)工具Valgrind的安裝與使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下
Valgrind是一款用于內(nèi)存調(diào)試、內(nèi)存泄漏檢測(cè)以及性能分析的軟件開發(fā)工具。
Valgrind的最初作者是Julian Seward,他于2006年由于在開發(fā)Valgrind上的工作獲得了第二屆Google-O'Reilly開源代碼獎(jiǎng)。
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

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

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

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

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

報(bào)告:


說明
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 工具可以檢查以下的程序錯(cuò)誤:

使用未初始化的內(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)
對(duì)堆棧的非法訪問 (Reading/writing inappropriate areas on the stack)
申請(qǐng)的空間是否有釋放 (Memory leaks – where pointers to malloc'd blocks are lost forever)
malloc/free/new/delete申請(qǐng)和釋放內(nèi)存的匹配(Mismatched use of malloc/new/new [] vs free/delete/delete [])
src和dst的重疊(Overlapping src and dst pointers in memcpy() and related functions)
重復(fù)free

相關(guān)文章

  • C++中的throw關(guān)鍵字詳解

    C++中的throw關(guān)鍵字詳解

    throw關(guān)鍵字是在C語(yǔ)言中用來拋出異常的關(guān)鍵字,它通常與try和catch一起使用,用于在程序中發(fā)生錯(cuò)誤時(shí)進(jìn)行異常處理,當(dāng)遇到無法處理的錯(cuò)誤情況時(shí),我們可以使用throw關(guān)鍵字主動(dòng)拋出異常,所以本文給大家詳細(xì)的介紹一下C++中的throw關(guān)鍵字,需要的朋友可以參考下
    2023-09-09
  • C++實(shí)現(xiàn)雙向鏈表(List)

    C++實(shí)現(xiàn)雙向鏈表(List)

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)雙向鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • C和C++ const的聲明差異

    C和C++ const的聲明差異

    本文給大家簡(jiǎn)單匯總了下C語(yǔ)言的const與C++的const的聲明差異,非常的簡(jiǎn)單,也很實(shí)用,有需要的小伙伴可以參考下
    2016-03-03
  • 淺談C語(yǔ)言結(jié)構(gòu)體

    淺談C語(yǔ)言結(jié)構(gòu)體

    本文主要介紹C語(yǔ)言 結(jié)構(gòu)體的知識(shí),學(xué)習(xí)C語(yǔ)言肯定需要學(xué)習(xí)結(jié)構(gòu)體,這里詳細(xì)說明了結(jié)構(gòu)體并附示例代碼,供大家參考學(xué)習(xí),有需要的小伙伴可以參考下
    2021-10-10
  • c++中std::hash以及萬能hash的使用方式

    c++中std::hash以及萬能hash的使用方式

    這篇文章主要介紹了c++中std::hash以及萬能hash的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • C語(yǔ)言零基礎(chǔ)入門(2)

    C語(yǔ)言零基礎(chǔ)入門(2)

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言零基礎(chǔ)入門的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++實(shí)現(xiàn)封裝的順序表的操作與實(shí)踐

    C++實(shí)現(xiàn)封裝的順序表的操作與實(shí)踐

    在程序設(shè)計(jì)中,順序表是一種常見的線性數(shù)據(jù)結(jié)構(gòu),通常用于存儲(chǔ)具有固定順序的元素,與鏈表不同,順序表中的元素是連續(xù)存儲(chǔ)的,因此訪問速度較快,但插入和刪除操作的效率可能較低,本文將詳細(xì)介紹如何用 C++ 語(yǔ)言實(shí)現(xiàn)一個(gè)封裝的順序表類,深入探討順序表的核心操作
    2025-02-02
  • 詳解C語(yǔ)言內(nèi)核字符串拷貝與比較

    詳解C語(yǔ)言內(nèi)核字符串拷貝與比較

    本文將探索一下字符串的拷貝與比較,與應(yīng)用層不同內(nèi)核字符串拷貝與比較也需要使用內(nèi)核專用的API函數(shù),字符串的拷貝往往伴隨有內(nèi)核內(nèi)存分配,我們將首先簡(jiǎn)單介紹內(nèi)核如何分配堆空間,然后再以此為契機(jī)簡(jiǎn)介字符串的拷貝與比較
    2022-09-09
  • Qt開發(fā)之QTreeWidget的使用教程詳解

    Qt開發(fā)之QTreeWidget的使用教程詳解

    這篇文章主要為大家詳細(xì)介紹了Qt中QTreeWidget使用的相關(guān)資料,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Qt有一定的幫助,感興趣的小伙伴可以了解一下
    2022-12-12
  • 基于C語(yǔ)言掃雷游戲的設(shè)計(jì)與實(shí)現(xiàn)

    基于C語(yǔ)言掃雷游戲的設(shè)計(jì)與實(shí)現(xiàn)

    大家好,本篇文章主要講的是基于C語(yǔ)言掃雷游戲的設(shè)計(jì)與實(shí)現(xiàn),感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12

最新評(píng)論

佛学| 孟连| 紫阳县| 凌云县| 嘉峪关市| 沙坪坝区| 洛扎县| 体育| 游戏| 贺兰县| 灵璧县| 镇赉县| 正镶白旗| 基隆市| 陆川县| 宣城市| 海兴县| 手游| 华蓥市| 呼伦贝尔市| 江陵县| 汶上县| 高雄县| 松滋市| 铁力市| 巴中市| 买车| 罗定市| 铜山县| 大渡口区| 兰考县| 墨脱县| 营口市| 青田县| 莆田市| 西昌市| 阿克苏市| 东山县| 西昌市| 黎平县| 南木林县|