C++ 定位new内存泄漏
程序员文章站
2022-05-27 09:27:28
...
// debug.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <assert.h>
#include <iostream>
#ifdef _DEBUG
#define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
#else
#define DEBUG_CLIENTBLOCK
#endif
#define _CRTDBG_MAP_ALLOC
#include <crtdbg.h>
#ifdef _DEBUG
#define new DEBUG_CLIENTBLOCK
#endif
void Exit()
{
int i = _CrtDumpMemoryLeaks();
//_wassert(_CRT_WIDE("内存泄漏"), _CRT_WIDE(__FILE__), __LINE__);
assert(i==0);
}
int _tmain(int argc, _TCHAR* argv[])
{
atexit(Exit);
int* p = new int();
system("pause");
return 0;
}
如图所示定位到没有delete 的new的行数
上一篇: 想要滋补身体的男人喝什么汤好
下一篇: ubuntu16.04安装php5.6
推荐阅读
-
C/C++应用程序内存泄漏检查统计方案
-
vs2017 如何定位C++内存泄漏
-
[微软标准做法] Visual Studio使用 CRT 库查找C++内存泄漏
-
[微软标准做法] Visual Studio使用 CRT 库查找C++内存泄漏
-
C++之内存泄漏排查详解
-
c++屠龙术:定位new表达式
-
Web应用程序 [new_system] 注册了JDBC驱动程序 [com.mysql.jdbc.Driver],但在Web应用程序停止时无法注销它。 为防止内存泄漏,JDBC驱动程序已被强制取消注册
-
c/c++ 使用valgrind检查内存泄漏
-
C/C++应用程序内存泄漏检查统计方案
-
C++ 定位new内存泄漏