首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可视检漏器能否排除误报内存泄漏?

可视检漏器能否排除误报内存泄漏?
EN

Stack Overflow用户
提问于 2012-05-24 11:08:09
回答 1查看 1.8K关注 0票数 2

比方说,我现在使用可视化泄漏检测器(VLD)来检查服务应用程序中的内存泄漏。而且,由于许多内存分配发生在静态对象中,所以我想知道,VLD是否可以排除那些错误的内存泄漏(它不应该被视为真正的内存泄漏)。

非常感谢

EN

回答 1

Stack Overflow用户

发布于 2012-05-31 11:11:32

经过一些调查,我发现这个VLD不能排除那些误报的内存泄漏(比如静态对象中的new ),因为这也在它的vld.dll中使用了一个全局静态对象,并且它的dtor将报告可能的内存泄漏。因为你不能确保它们的析构函数序列,所以你不能使用VLD来检测静态对象中的内存泄漏。

然而,我也找到了一个旁路解决方案,因为你可以修改这个工具的源代码,你可以使用atexit在你的ctor中注册reportMemoryLeak函数,这将确保这个方法在dtor之后被调用。

坦率地说,这真的不是那么直接,所以看看这个使用windbg+DebugCRT堆的http://cfc.kizzx2.com/index.php/detecting-memory-leaks-with-windbg-the-modern-and-free-way/是可以的!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10730614

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档