标签:style blog color os ar 使用 for sp 文件
1、 设置断点逐步调试。通过Watch、Call Stack窗口查看调试信息。
2、 添加调试代码。
#ifdef _DEBUG //Code for debugging Purposes #endif //_DEBUG
3、 使用宏。
ASSERT宏
VERIFY 宏
TRACE宏
4、 检查内存泄露。
非MFC应用程序下使用CRT查看内存泄露信息。
#ifdef _DEBUG #define _CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> #define new new(_NORMAL_BLOCK, __FILE__, __LINE__) //可以看到new分配内存情况 #endif _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF); // 可以指定输出文件 或者 _CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); //输出信息到VS output窗口
_CrtSetDbgFlag( _CRTDBG_REPORT_FLAG);
将结果输出指向dump文件
由于默认情况下,内存泄漏的dump内容是输出到vs的debug输出窗口,但是对于服务类程序肯定没法开着vs的debug模式来追踪内存泄漏,所以可以将dump内容的输出转到dump文件中。
在程序中添加如下部分:
HANDLE hLogFile;//声明日志文件句柄 hLogFile = CreateFile("./log/memleak.log", GENERIC_WRITE, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);//创建日志文件 _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);//将warn级别的内容都输出到文件(注意dump的 报告级别即为warning) _CrtSetReportFile(_CRT_WARN, hLogFile);//将日志文件设置为告警的输出文件
保存内存Dump
标签:style blog color os ar 使用 for sp 文件
原文地址:http://www.cnblogs.com/leadtheway/p/4032260.html