在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用valgrind對代碼進(jìn)行內(nèi)存泄露檢測

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者: Vincent ? 2023-10-04 14:56 ? 次閱讀

代碼可能存在內(nèi)存泄露怎么辦?

使用valgrind可以對代碼進(jìn)行內(nèi)存泄露檢測。

valgrind下載安裝

圖片

安裝:

1、tar –jxvf valgrind-3.21.0.tar.bz2
2、cd valgrind-3.21.0
3、./configure --prefix=/home/book/valgrind-3.21.0/install
4、make
5、make install

--prefix為指定安裝路徑,可以不指定,使用默認(rèn)的,即執(zhí)行./configure

內(nèi)存泄露測試

測試程序test.c

分配40個字節(jié)的buffer,越界訪問buf[10].

#include < stdio.h >
#include < stdlib.h >
#include < unistd.h >

void test()
{

        int *buf = (int *)malloc(10*sizeof(int));
        buf[10] = 0x55;

}

int main()
{
        test();
        return 0;
}

編譯:

gcc -g -o test test.c

編譯時注意加上-g選項(xiàng)

使用valgrinid測試:

./valgrind --leak-check=yes ./test

圖片

結(jié)果顯示,產(chǎn)生錯誤的地方在test.c15main函數(shù)中,即調(diào)用test()函數(shù)。具體的在test.c的第9行,test函數(shù)內(nèi),即buf[10] = 0x55;語句。

根據(jù)提示信息,可知valgrind檢測到了2個錯誤:

  • 存在無效的寫入數(shù)據(jù),即數(shù)組越界訪問
  • 內(nèi)存泄露,分配了40字節(jié)沒有釋放
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 測試
    +關(guān)注

    關(guān)注

    8

    文章

    5579

    瀏覽量

    128141
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11432

    瀏覽量

    212488
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3103

    瀏覽量

    74918
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4883

    瀏覽量

    70104
  • Valgrind
    +關(guān)注

    關(guān)注

    0

    文章

    9

    瀏覽量

    6893
收藏 人收藏

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    檢測內(nèi)存泄漏和內(nèi)存違例,Valgrind不可少!

    Valgrind可以檢測內(nèi)存泄漏和內(nèi)存違例,但是用Valgrind生成的日志信息結(jié)合kcachegrind就可以查看C程序的執(zhí)行線路圖,調(diào)用
    的頭像 發(fā)表于 05-07 08:45 ?6874次閱讀
    <b class='flag-5'>檢測</b><b class='flag-5'>內(nèi)存</b>泄漏和<b class='flag-5'>內(nèi)存</b>違例,<b class='flag-5'>Valgrind</b>不可少!

    使用valgrind代碼進(jìn)行內(nèi)存泄露檢測

    代碼可能存在內(nèi)存泄露怎么辦?
    發(fā)表于 08-21 15:30 ?490次閱讀
    使用<b class='flag-5'>valgrind</b>對<b class='flag-5'>代碼</b><b class='flag-5'>進(jìn)行內(nèi)存</b><b class='flag-5'>泄露</b><b class='flag-5'>檢測</b>

    嵌入式相關(guān)的動態(tài)檢測工具Valgrind簡介

    Valgrind是一套Linux下,開放源代碼(GPL V2)的仿真調(diào)試工具的集合。
    的頭像 發(fā)表于 11-08 09:41 ?2768次閱讀
    嵌入式相關(guān)的動態(tài)<b class='flag-5'>檢測</b>工具<b class='flag-5'>Valgrind</b>簡介

    Linux上對進(jìn)程進(jìn)行內(nèi)存分析和內(nèi)存泄漏定位

    。(棧)5、采用mmap方式映射到虛擬地址空間中的內(nèi)存段這是我的機(jī)器上,redis 進(jìn)程的情況,第一行:從r-xp可知其權(quán)限為只讀、可執(zhí)行,該段內(nèi)存地址對應(yīng)于執(zhí)行文件的代碼段,程序的代碼
    發(fā)表于 07-09 08:15

    如何實(shí)現(xiàn)FPGA進(jìn)行內(nèi)存映射的GPMC接口進(jìn)行通信?

    我想與使用FPGA進(jìn)行內(nèi)存映射(A0-A26和D0-D15)的GPMC接口進(jìn)行通信。哪些是我需要在FPGA中考慮GPMC通信的所有控制信號?
    發(fā)表于 05-01 12:09

    一種利用調(diào)試軟件Valgrind進(jìn)行嵌入式應(yīng)用程序錯誤查找的技術(shù)

    本文介紹了一種利用調(diào)試軟件Valgrind進(jìn)行嵌入式應(yīng)用程序錯誤查找的技術(shù),利用它可以高效、自動地查找出程序中的多種錯誤。首先介紹了嵌入式程序常見錯誤,接著研究了Valgrind的工作原理,介紹了利用
    發(fā)表于 04-23 06:49

    valgrind是怎樣去移植源碼的

    嵌入式內(nèi)存檢測工具-valgrind移植源碼較快)準(zhǔn)備:解壓tar -jxvf valgrind-3.16.1.tar.bz2進(jìn)入valgrind
    發(fā)表于 12-17 07:56

    為什么要進(jìn)行內(nèi)存對齊操作呢

    嵌入式開發(fā)-內(nèi)存對齊最近項(xiàng)目中遇到程序報Bus error,經(jīng)排查發(fā)現(xiàn)是內(nèi)存對齊的原因?qū)е碌倪@個問題,在此紀(jì)錄總結(jié)下一、為什么要進(jìn)行內(nèi)存對齊操作平臺原因(移植原因):不是所有的硬件平臺都能訪問任意
    發(fā)表于 12-17 06:34

    內(nèi)存泄露內(nèi)存溢出是什么意思

    面試題目匯總最重要:簡單又重點(diǎn)突出的自我介紹!1、內(nèi)存泄露內(nèi)存溢出是什么意思2、static的使用3、break 和continue的區(qū)別4、指針函數(shù)和函數(shù)指針的區(qū)別5、數(shù)組和鏈表的區(qū)別
    發(fā)表于 12-20 07:47

    Linux C/C++內(nèi)存泄漏檢測工具:Valgrind

    Valgrind 是一款 Linux下(支持 x86、x86_64和ppc32)程序的內(nèi)存調(diào)試工具,它可以對編譯后的二進(jìn)制程序進(jìn)行內(nèi)存使用監(jiān)測(C語言中的malloc和free,以及
    發(fā)表于 04-02 14:33 ?701次閱讀

    內(nèi)存泄漏的檢測方法

    的。其實(shí)不然,防止內(nèi)存泄露要從良好的編程習(xí)慣做起,另外重要的一點(diǎn)就是要加強(qiáng)單元測試(Unit Test),而valgrind就是這樣一款優(yōu)秀的工具。
    的頭像 發(fā)表于 06-20 11:01 ?3323次閱讀

    闡述手機(jī)內(nèi)存與運(yùn)行內(nèi)存中的關(guān)系及區(qū)別

    “手機(jī)的“內(nèi)存”通常指“運(yùn)行內(nèi)存”及“非運(yùn)行內(nèi)存”。手機(jī)的“運(yùn)行內(nèi)存”相當(dāng)于電腦的內(nèi)存,即RAM。而手機(jī)的“非運(yùn)
    發(fā)表于 07-30 14:17 ?7413次閱讀

    valgrind檢測內(nèi)存問題的原理

    valgrind 是一個提供了一些 debug 和優(yōu)化的工具的工具箱,可以使得你的程序減少內(nèi)存泄漏或者錯誤訪問。valgrind 默認(rèn)使用 memcheck 去檢查內(nèi)存問題。memch
    的頭像 發(fā)表于 05-23 09:30 ?2982次閱讀
    <b class='flag-5'>valgrind</b><b class='flag-5'>檢測</b><b class='flag-5'>內(nèi)存</b>問題的原理

    mtrace分析內(nèi)存泄露

    一、mtrace分析內(nèi)存泄露 mtrace(memory trace),是 GNU Glibc 自帶的內(nèi)存問題檢測工具,它可以用來協(xié)助定位內(nèi)存
    的頭像 發(fā)表于 11-13 10:55 ?1514次閱讀
    mtrace分析<b class='flag-5'>內(nèi)存</b><b class='flag-5'>泄露</b>

    內(nèi)存泄漏檢測工具Sanitizer介紹

    內(nèi)存泄漏,我們經(jīng)常會遇到,如何檢測內(nèi)存泄漏,除了我們之前講過的 valgrind,還可以使用 gcc 自帶的工具 sanitizer。
    的頭像 發(fā)表于 03-01 14:52 ?448次閱讀
    主站蜘蛛池模板: 河南毛片 | 欧美性猛交xxxx乱大交 | 人与禽一级一级毛片 | 日本高清免费一本视频在线观看 | 国产午夜不卡在线观看视频666 | 人人看人人添人人爽 | 你懂得在线 | 九色视频网站 | 东北老女人啪啪对白 | 欧美破处视频在线 | 清纯唯美亚洲综合一区 | 逼逼视频网站 | free chinese 国产精品 | 69性成熟xxxxhd | 天天爽夜夜爽天天做夜夜做 | 亚洲a影院 | 性欧美xx| 四虎永久在线精品网址 | 国产精品1区2区3区在线播放 | 日本xxxxx黄区免费看动漫 | 女人张开腿让男人桶免费最新 | 天堂网www中文天堂在线 | 国产香蕉在线视频 | 综合7799亚洲伊人爱爱网 | 美日韩一区二区 | 天天做天天爱夜夜想毛片 | 久久夜视频 | 手机看片1024日韩 | 老师我好爽再深一点好大 | 四虎东方va私人影库在线观看 | 国产免费一级高清淫日本片 | www.色.com| 国产免费高清视频在线观看不卡 | 欧美69xxx | 久久精品亚洲青青草原 | 搞黄视频网站 | 男人女人的免费视频网站 | 人人做人人干 | 欧美一级免费在线观看 | 中文字幕亚洲一区二区va在线 | 日本v片免费一区二区三区 日本www.色 日本wwwwww |