zoukankan      html  css  js  c++  java
  • C++内存泄漏的调试

    一、在程序代码中加入代码:

    头文件和宏定义:

    #define _CRTDBG_MAP_ALLOC
    #include <crtdbg.h> #define new new(_NORMAL_BLOCK, __FILE__, __LINE__)

    注意:#include 语句的顺序。如果更改此顺序,所使用的函数可能无法正确工作。

    在析构函数最后一行调用:

    _CrtDumpMemoryLeaks();

    二、在调试过程中监视指定内存位置:

    C运行库(C run-time library)

    long _CrtSetBreakAlloc(  long lBreakAlloc ); 

    其中参数lBreakAlloc即为内存分配号(花括号中的数字)。我们只要在程序初始化函数中添加语句:_CrtSetBreakAlloc(80)就可以使程序在Debug
    F5运行时自动断点到我们想要的位置。

    在Watch窗口中:

     静态链接 在name项中输入_crtBreakAlloc,在value项中输入你要定位的内存分配编号;

    动态链接 在name项中输入{msvcr130d.dll}_crtBreakAlloc,在value项中输入内存分配号;

    没有坚守就没有事业,没有执着就没有未来!
  • 相关阅读:
    队列与双向队列

    linux nohup, jobs, fg, tail指令 指令前后台切换
    linux shell
    Linux学习笔记四 grep, sed, awk
    面试要求
    jenkins send files or publish
    mysql导入脚本
    第三方接口调用框架
    pdm文件name与comment互相同步
  • 原文地址:https://www.cnblogs.com/depend-wind/p/9001012.html
Copyright © 2011-2022 走看看