• 【转】_CrtSetBreakAlloc 内存泄漏


    声明:本内容转载自 https://my.oschina.net/gp8wLHNUeKd2C/blog/110707

    在使用VS开发过程中,(今日)遇到内存泄漏的情况。具体表现为:

    在输出窗口中,显示:

    项目代码翻了个遍都没看出问题在哪。此时,可通过 _CrtSetBreakAlloc(); 接口,进行简单的内存泄漏检查。

    具体使用方法:在 main 函数中,直接第一句前加上 _CrtSetBreakAlloc(12866); 然后以 debug 模式下运行。此时,vs会直接帮忙定位到具体发生内存泄漏的位置(注意:是以中断的形式定位的)。


    下面是转载博客的部分需要注意的地方的原文内容(方便查阅,故copy放于此):

    或者 在头文件添加如下代码
    
    // 在入口函数cpp中添加以下定义和头文件   
    #define CRTDBG_MAP_ALLOC   
    #include <stdlib.h>   
    #include <crtdbg.h>   
    
    
    
    如果用VisualLeakDetector无法找到内存溢出代码对应的位置的时候,要首先查看如下操作
    
    1.当前程序路径是否包含中文,VisualLeakDetector对中文不能支持
    
    2.打算查看的DLL是否包含了"#include <vld.h>",每个打算查看的DLL都要在原DLL的代码中添加"#include <vld.h>"
    
    3.不能在当前程序路径中包含VisualLeakDetector安装路径下的任何文件。
  • 相关阅读:
    C#异步编程:多线程基础Thread类
    WPF:TextBox控件禁用中文输入
    C#:泛型的协变和逆变
    C#:泛型接口
    C#:泛型委托
    C#:泛型类
    Jetbrains Rider:缺少.NET Framework 4.5.2
    C#:泛型方法
    C#:泛型
    C#:接口
  • 原文地址:https://www.cnblogs.com/tongy0/p/7800711.html
Copyright © 2020-2023  润新知