久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3376|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

檢測內(nèi)存泄露工具 Visual Leak Detector for Visual C++ 2008/2010

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:77367 發(fā)表于 2015-4-18 21:07 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
下載地址:http://vld.codeplex.com/
安裝這個工具后添加上它的的include和lib目錄即可,然后比如在stdafx.h中
#inclide<vld.h>
即可。。。。

在Debug運(yùn)行后,在“輸出”窗口就會出現(xiàn)下面這樣的提示,定義出了泄露內(nèi)存的地方。。。


WARNING: Visual Leak Detector detected memory leaks!
---------- Block 128546 at 0x02059550: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    D8 6F 5B 01    CD CD CD CD                                   .o[..... ........




---------- Block 92549 at 0x02059898: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    08 2D 5B 01    CD CD CD CD                                   .-[..... ........




---------- Block 96150 at 0x020598E0: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    08 E0 81 04    CD CD CD CD                                   ........ ........




---------- Block 121344 at 0x02059A08: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    08 95 77 04    CD CD CD CD                                   ..w..... ........




---------- Block 132149 at 0x02059E60: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    B8 4F 7F 04    CD CD CD CD                                   .O...... ........




---------- Block 96149 at 0x0205C1A0: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    68 93 77 04    CD CD CD CD                                   h.w..... ........




---------- Block 128547 at 0x0205CB28: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    68 4E 7F 04    CD CD CD CD                                   hN...... ........




---------- Block 124945 at 0x0205CBC8: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    40 94 77 04    CD CD CD CD                                   @.w..... ........




---------- Block 92546 at 0x0205FC88: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    88 95 77 04    CD CD CD CD                                   ..w..... ........




---------- Block 298054 at 0x0205FF10: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    B8 94 77 04    CD CD CD CD                                   ..w..... ........




---------- Block 135750 at 0x04030A68: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    18 91 AE 04    CD CD CD CD                                   ........ ........




---------- Block 135752 at 0x0403D3F8: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    C0 91 AE 04    CD CD CD CD                                   ........ ........




---------- Block 124946 at 0x04040300: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    30 6F 5B 01    CD CD CD CD                                   0o[..... ........




---------- Block 128549 at 0x04040620: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    10 4F 7F 04    CD CD CD CD                                   .O...... ........




---------- Block 135749 at 0x04040D50: 8 bytes ----------
  Call Stack:
    f:\medical\medical\imgprocessdlg.cpp (773): Medical.exe!CImgProcessDlg::SaveCurrentToUndo + 0x7 bytes
    f:\medical\medical\imgprocessdlg.cpp (193): Medical.exe!RunImageToolsThread
    0x7C80B729 (File and line number not available): kernel32.dll!GetModuleFileNameA + 0x1BA bytes
  Data:
    70 90 AE 04    CD CD CD CD                                   p....... ........




Visual Leak Detector detected 15 memory leaks (660 bytes).
Largest number used: 930882 bytes.
Total allocations: 40291554 bytes.
Visual Leak Detector is now exiting.
Detected memory leaks!
Dumping objects ->
{301788} normal block at 0x0205FF10, 8 bytes long.
Data: <  w     > B8 94 77 04 CD CD CD CD
{139037} normal block at 0x0403D3F8, 8 bytes long.
Data: <        > C0 91 AE 04 CD CD CD CD
{139025} normal block at 0x04030A68, 8 bytes long.
Data: <        > 18 91 AE 04 CD CD CD CD
{139015} normal block at 0x04040D50, 8 bytes long.
Data: <p       > 70 90 AE 04 CD CD CD CD
{135401} normal block at 0x02059E60, 8 bytes long.
Data: < O      > B8 4F 7F 04 CD CD CD CD
{131787} normal block at 0x04040620, 8 bytes long.
Data: < O      > 10 4F 7F 04 CD CD CD CD
{131775} normal block at 0x0205CB28, 8 bytes long.
Data: <hN      > 68 4E 7F 04 CD CD CD CD
{131765} normal block at 0x02059550, 8 bytes long.
Data: < o[     > D8 6F 5B 01 CD CD CD CD
{128151} normal block at 0x04040300, 8 bytes long.
Data: <0o[     > 30 6F 5B 01 CD CD CD CD
{128140} normal block at 0x0205CBC8, 8 bytes long.
Data: <@ w     > 40 94 77 04 CD CD CD CD
{124526} normal block at 0x02059A08, 8 bytes long.
Data: <  w     > 08 95 77 04 CD CD CD CD
{99272} normal block at 0x020598E0, 8 bytes long.
Data: <        > 08 E0 81 04 CD CD CD CD
{99260} normal block at 0x0205C1A0, 8 bytes long.
Data: <h w     > 68 93 77 04 CD CD CD CD
{95645} normal block at 0x02059898, 8 bytes long.
Data: < -[     > 08 2D 5B 01 CD CD CD CD
{95633} normal block at 0x0205FC88, 8 bytes long.
Data: <  w     > 88 95 77 04 CD CD CD CD
Object dump complete.
Medical.exe 中的 0x7c92100b 處最可能的異常: 0xC0000005: 讀取位置 0x01ae1f40 時發(fā)生訪問沖突
Medical.exe 中的 0x7c92100b 處未處理的異常: 0xC0000005: 讀取位置 0x01ae1f40 時發(fā)生訪問沖突


從上面可以看到是CImgProcessDlg::SaveCurrentToUndo()函數(shù)造成的內(nèi)存泄露,該函數(shù)的定義是:

void CImgProcessDlg::SaveCurrentToUndo()
{
        KFreeImage   * pUndo = new KFreeImage ;
        *pUndo = m_kOrgImage ;
        m_undo.push_back(pUndo) ;
}


發(fā)現(xiàn)KFreeImage   * pUndo = new KFreeImage ;這句分配了內(nèi)存但沒有釋放掉,每次調(diào)用都泄露一次。修改該函數(shù)如下


void CImgProcessDlg::SaveCurrentToUndo()
{
        KFreeImage   * pUndo = new KFreeImage ;
        *pUndo = m_kOrgImage ;
        m_undo.push_back(pUndo) ;
        pUndo->Unload();
        pUndo = NULL;
}



輸出窗口提示就沒有內(nèi)存泄露了

No memory leaks detected.
Visual Leak Detector is now exiting.
Medical.exe 中的 0x7c92100b 處最可能的異常: 0xC0000005: 讀取位置 0x01ae1f40 時發(fā)生訪問沖突
Medical.exe 中的 0x7c92100b 處未處理的異常: 0xC0000005: 讀取位置 0x01ae1f40 時發(fā)生訪問沖突




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 在线播放一区二区三区 | 亚洲一区二区在线播放 | 久久久久国产一区二区三区四区 | 日本视频一区二区 | 亚洲精品乱码久久久久久9色 | 亚洲精品久久国产高清情趣图文 | 日本精品视频一区二区三区四区 | av在线免费观看网站 | 欧美天堂一区 | 国产精品国产成人国产三级 | 美女在线观看av | 国产福利二区 | 一区二区三区中文字幕 | 久久丝袜 | 亚洲国产一区二区视频 | 激情六月天 | 99精品国产一区二区三区 | 国产精品不卡视频 | 色偷偷噜噜噜亚洲男人 | 毛片网站在线观看视频 | 精品91 | 精品久久久久一区二区国产 | 天天久久 | 欧美成视频在线观看 | 久久久久久久久精 | 男女国产网站 | 夜夜骑天天干 | 日本久久视频 | 日韩视频精品在线 | 免费在线h视频 | 成人美女免费网站视频 | 超黄视频网站 | av一级在线观看 | 亚洲欧美成人影院 | 天天拍天天操 | 一级黄色av电影 | 日韩一区二区三区在线播放 | 日韩一区二区视频 | 免费看黄色小视频 | 丝袜美腿一区二区三区动态图 | 一区二区国产精品 |