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

標題: 檢測內存泄露工具 Visual Leak Detector for Visual C++ 2008/2010 [打印本頁]

作者: bibi    時間: 2015-4-18 21:07
標題: 檢測內存泄露工具 Visual Leak Detector for Visual C++ 2008/2010
下載地址:http://vld.codeplex.com/
安裝這個工具后添加上它的的include和lib目錄即可,然后比如在stdafx.h中
#inclide<vld.h>
即可。。。。

在Debug運行后,在“輸出”窗口就會出現下面這樣的提示,定義出了泄露內存的地方。。。


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 時發生訪問沖突
Medical.exe 中的 0x7c92100b 處未處理的異常: 0xC0000005: 讀取位置 0x01ae1f40 時發生訪問沖突


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

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


發現KFreeImage   * pUndo = new KFreeImage ;這句分配了內存但沒有釋放掉,每次調用都泄露一次。修改該函數如下


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



輸出窗口提示就沒有內存泄露了

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









歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品美女久久久久aⅴ国产馆 | 国产成人福利在线观看 | 日韩中文字幕在线观看视频 | 欧美a√| 99re视频在线观看 | 久久麻豆精品 | 一区二区免费在线视频 | 午夜精品在线 | 免费黄色a级毛片 | 欧美日韩亚洲视频 | 欧美男人的天堂 | 欧美日韩视频在线 | 亚洲日日操 | 免费日韩av网站 | 久热久 | 日韩一区二区在线视频 | 国产日产精品一区二区三区四区 | 一级全黄视频 | 在线免费视频一区 | 农村黄性色生活片 | 久久久久久久一区二区三区 | 自拍偷拍欧美 | 久久久精彩视频 | 精品一区二区三区在线观看 | 欧美一级在线视频 | 国产精品久久久久久久免费观看 | 国产日韩欧美在线 | 91极品欧美视频 | 欧美 日本 国产 | 奇米久久 | 成人a视频在线观看 | 一级毛片视频 | 我我色综合 | 一二三四av | 日韩一区二区在线视频 | 久久区二区 | 精品免费国产一区二区三区四区介绍 | 日韩国产精品一区二区三区 | 亚洲精品日韩一区二区电影 | 亚洲精品欧美 | 中文字幕一区二区三区在线乱码 |