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

头文件和宏定义:

#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项中输入内存分配号;

相关文章:

  • 2021-12-30
  • 2021-09-19
  • 2021-09-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-28
猜你喜欢
  • 2021-12-13
  • 2021-07-04
  • 2022-03-08
  • 2018-03-27
  • 2022-12-23
  • 2022-12-23
  • 2021-07-30
相关资源
相似解决方案