随笔分类 - 各种专题
C++内存泄露的检测(四)
摘要:一 使用各种工具,一般都是收费的,但是可以申请试用。二 工具收集1)BoundsChecker :(http://www.compuware.com/)(首选BoundsChecker) 应该说是功能最强,使用只需要open需要测试的exe,然后start就可以了,可以通过检测结果定位到源代码中有内存泄露的代码行。2)Purifyplus (http://www.ibm.com)3)Memory Validator(http://www.softwareverify.com/index.html) 应该说是功能也比较强,使用只需要start application wizard的start e
阅读全文
C++内存泄露的检测(三)
摘要:一 简单的对内存的分配和释放跟踪,并将结果输出到console,它也是一般C++内存泄露的检测原理,来自C++编程思想:(比较简单,大家都可以看的明白的哦)实现如下:MemCheck.h//: C02:MemCheck.h#ifndef MEMCHECK_H#define MEMCHECK_H#include <cstddef> // for size_t// Hijack the new operator (both scalar and array versions)void* operator new(std::size_t, const char*, long);void*
阅读全文
C++内存泄露的检测(二)
摘要:使用MFC提供的功能来检测内存泄露。使用方法:1)工程是MFC工程,或是工程的设置中有Use MFC in a Shared DLL,2)很多地方说是要定义以下宏#ifdef _DEBUG#define new DEBUG_NEW#endif但是我发现只要include <afx.h> 即可。(大家可以检测一下)3)可以在F5运行程序后,在output窗口中看到如下的内存泄露的显示。(只在debug下有用哦)4)如果有泄露,则显示如下:Detected memory leaks!Dumping objects ->{214} normal block at 0x00D9161
阅读全文
C++内存泄露的检测(一)
摘要:一Visual Studio 调试器和 C 运行时 (CRT) 库为我们提供了检测和识别内存泄漏的有效方法。主要使用函数:_CrtDumpMemoryLeaks();二 实例 1 #define _CRTDBG_MAP_ALLOC //输出更详细的report 2 #include <stdlib.h> 3 #include <crtdbg.h> 4 //以上的内容必须放在其他include的前面 5 6 #include <vector> 7 8 class MyClass 9 {10 private:11 int *p;12 public:13 MyCl
阅读全文