亚洲Aⅴ无码Av红楼在线观看_国产午夜福利涩爱AⅤ_国产sm调教一区二区三区_精品人妻一区二区三区不卡毛片

始創(chuàng)于2000年 股票代碼:831685
咨詢熱線:0371-60135900 注冊(cè)有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁(yè) > 幫助中心>文章內(nèi)容

linux下檢測(cè)內(nèi)存泄漏工具Valgrind

發(fā)布時(shí)間:  2014/8/12 11:03:36
linux下檢測(cè)內(nèi)存泄漏工具Valgrind簡(jiǎn)介
在我們編寫C/C++的時(shí)候,最常見(jiàn)的錯(cuò)誤之一就是內(nèi)存泄露,這樣的問(wèn)題其實(shí)跟程序員的編程習(xí)慣密不可分。如果你在虛擬主機(jī)申請(qǐng)內(nèi)存空間之后能夠馬上在合適的位置釋放內(nèi)存。會(huì)極大程度的避免內(nèi)存泄漏的情況。但是人非圣賢,孰能無(wú)過(guò)。有時(shí)候我們確實(shí)忘記釋放內(nèi)存而導(dǎo)致了比較嚴(yán)重的錯(cuò)誤,所以這個(gè)時(shí)候我們需要借助valgrind這個(gè)工具來(lái)判斷內(nèi)存泄漏。

Valgrind 是一款 Linux下(支持 x86、x86_64和ppc32)程序的內(nèi)存調(diào)試工具,它可以對(duì)編譯后的二進(jìn)制程序進(jìn)行內(nèi)存使用監(jiān)測(cè)(C語(yǔ)言中的malloc和free,以及C++中的new和delete),找出內(nèi)存泄漏問(wèn)題。

Valgrind 中包含的 Memcheck 工具可以檢查以下的程序錯(cuò)誤:
使用未初始化的內(nèi)存 (Use of uninitialised memory)
使用已經(jīng)釋放了的內(nèi)存 (Reading/writing memory after it has been free’d)
使用超過(guò)malloc分配的內(nèi)存空間(Reading/writing off the end of malloc’d blocks)
對(duì)堆棧的非法訪問(wèn) (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

valgrind的使用實(shí)例:

在官網(wǎng)上找到valgrind的tar包,解壓,編譯。完成后make安裝:



編譯到制定位置:



安裝valgrind:



完成之后我們就可以對(duì)系統(tǒng)中的程序進(jìn)行檢測(cè)了,首先我們用ls顯示根目錄下的文件,ls命令是沒(méi)有內(nèi)存泄漏的:



為了體現(xiàn)valgrind 的檢錯(cuò)功能,我們故意編寫一個(gè)只malloc沒(méi)有free的C程序: 


編譯鏈接后使用valgrind進(jìn)行檢測(cè),發(fā)現(xiàn)有內(nèi)存泄漏:



然后我們?cè)贑程序中釋放內(nèi)存:



再次編譯鏈接完成后使用valgrind檢測(cè):


這次則顯示我們申請(qǐng)并且釋放了400B的空間,體現(xiàn)了valgrind的強(qiáng)大作用。

有這樣的檢錯(cuò)工具當(dāng)然很好,但是我更認(rèn)為程序員應(yīng)該始終頭腦清醒,知道自己的程序在做什么,記得這個(gè)忠告,如果你的語(yǔ)言沒(méi)有垃圾回收機(jī)制。那么在申請(qǐng)一塊內(nèi)存之后先不要做任何操作,先在合適的位置釋放內(nèi)存。畢竟好借好還,再借不難么。

本文出自:億恩科技【www.allwellnessguide.com】

服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問(wèn):河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      0
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線