随笔分类 -  vld

Visual Leak Detector
摘要:还是学习VLD2.X版本看到的:在Windows XP及之前的操作系统没有提供GetProcessIdOfThread的API,这里给出了一个替代的实现方式:头文件:#if _WIN32_WINNT < 0x0600 // Windows XP or earlier, no GetProcessId... 阅读全文
posted @ 2015-11-14 22:39 Through 阅读(912) 评论(0) 推荐(0)
摘要:学习VLD2.0代码,看到如下函数:HMODULE GetCallingModule( UINT_PTR pCaller ){ HMODULE hModule = NULL; MEMORY_BASIC_INFORMATION mbi; if ( VirtualQuery((LPCVOID)pCall... 阅读全文
posted @ 2015-11-14 22:30 Through 阅读(518) 评论(0) 推荐(0)
摘要:0X01 关闭FPO优化// Frame pointer omission (FPO) optimization should be turned off for this// entire file. The release VLD libs don't include FPO debug inf... 阅读全文
posted @ 2015-11-09 22:37 Through 阅读(439) 评论(0) 推荐(0)
摘要:学习VLD1.0代码,发现Release版本的代码_DEBUG宏是已定义的,查找工程配置确只有NDEBUG宏的定义,不见_DEBUG的踪影。好吧,最后发现是由于工程Code Generation选项使用的Debug的RT库,其就相当于定义_DEBUG宏。呵呵~~~相当隐晦。 阅读全文
posted @ 2015-11-08 22:40 Through 阅读(195) 评论(0) 推荐(0)
摘要:VC中,如果隐式链接的lib或dll未被引用,编译器并不会去生成加载该lib或dll的代码,从VLD1.0版本中看到可以通过如下方式强制引用:// Force a symbolic reference to the global VisualLeakDetector class object fro... 阅读全文
posted @ 2015-11-07 23:15 Through 阅读(269) 评论(0) 推荐(0)
摘要:近期想学习下VLD的实现,打算从最简单的V1.0版本看起。以下是V1.0版本自己尝试翻译下,最新的2.x版本似乎强大了很多。简介 Visual C++提供了内置的内存检测机制,但其充其量只满足了最小定位需求。VLD工具定位为内置内存泄漏的替代,提供了如下特性:泄漏内存块的全调用栈回溯,包括文件及其... 阅读全文
posted @ 2015-11-07 22:04 Through 阅读(398) 评论(0) 推荐(0)