zoukankan      html  css  js  c++  java
  • 使用Visual Leak Detector for Visual C++ 捕捉内存泄露

    1、下载vlc

    http://vld.codeplex.com/

    2、创建应用并配置

    c/c++ -> General -> Additional Include Directories = C:\Program Files (x86)\Visual Leak Detector\include

    Linker -> General -> Additional Library Directories = C:\Program Files (x86)\Visual Leak Detector\lib\Win32

    3、捕捉内在泄露

    #include "stdafx.h"
    
    #ifdef _DEBUG   
    #include "vld.h"
    #endif
    
    int _tmain(int argc, _TCHAR* argv[])
    {
        char* c1 = new char[100];
        char* c2  =(char*)malloc(200);
        char c3[1000];
    
        //delete[] c1;
        //free(c2);
    
        return 0;
    }

    输入如下:

    Visual Leak Detector Version 2.2.3 installed.
    WARNING: Visual Leak Detector detected memory leaks!
    ---------- Block 1 at 0x008CD6F8: 100 bytes ----------
      Call Stack:
        c:\users\enost_000\desktop\consoleapplication1\consoleapplication1\consoleapplication1.cpp (12): ConsoleApplication1.exe!wmain + 0x7 bytes
        f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (533): ConsoleApplication1.exe!__tmainCRTStartup + 0x19 bytes
        f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (377): ConsoleApplication1.exe!wmainCRTStartup
        0x74EE8543 (File and line number not available): KERNEL32.DLL!BaseThreadInitThunk + 0xE bytes
        0x770EAC69 (File and line number not available): ntdll.dll!RtlInitializeExceptionChain + 0x85 bytes
        0x770EAC3C (File and line number not available): ntdll.dll!RtlInitializeExceptionChain + 0x58 bytes
      Data:
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD                                                  ........ ........
    
    
    ---------- Block 2 at 0x008CD798: 200 bytes ----------
      Call Stack:
        c:\users\enost_000\desktop\consoleapplication1\consoleapplication1\consoleapplication1.cpp (13): ConsoleApplication1.exe!wmain + 0xD bytes
        f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (533): ConsoleApplication1.exe!__tmainCRTStartup + 0x19 bytes
        f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (377): ConsoleApplication1.exe!wmainCRTStartup
        0x74EE8543 (File and line number not available): KERNEL32.DLL!BaseThreadInitThunk + 0xE bytes
        0x770EAC69 (File and line number not available): ntdll.dll!RtlInitializeExceptionChain + 0x85 bytes
        0x770EAC3C (File and line number not available): ntdll.dll!RtlInitializeExceptionChain + 0x58 bytes
      Data:
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD    CD CD CD CD    CD CD CD CD     ........ ........
        CD CD CD CD    CD CD CD CD                                   ........ ........
    
    
    Visual Leak Detector detected 2 memory leaks (372 bytes).
    Largest number used: 372 bytes.
    Total allocations: 372 bytes.
    Visual Leak Detector is now exiting.
    The program '[0x262C] ConsoleApplication1.exe' has exited with code 0 (0x0).

    4、qt也vlc
      vlc只支持vc编译器,所以 qt的话只能够使用vc编译器捕捉并解决内存泄露之后,再考虑使用mingw(gcc/g++)编译程序。

  • 相关阅读:
    Android中TextView中内容不换行的解决方法
    对ORA-01795: 列表中的最大表达式数为 1000的处理(算法:计算数量及切割)
    poj 1094 Sorting It All Out (拓扑排序)
    Automatically generate serial number in abap
    Getting started with new I/O (NIO)--reference
    JDK源码重新编译——支持eclipse调试JDK源码--转载
    Reactor构架模式--转载
    分布式服务框架 Zookeeper -- 管理分布式环境中的数据--转载
    深入分析 iBATIS 框架之系统架构与映射原理--转载
    Servlet 工作原理解析--转载
  • 原文地址:https://www.cnblogs.com/chuncn/p/2803450.html
Copyright © 2011-2022 走看看