首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解决通过新语句分配的内存泄漏

问解决通过新语句分配的内存泄漏
EN

Stack Overflow用户
提问于 2011-03-03 19:50:46
回答 2查看 667关注 0票数 0

是否有办法跟踪通过新语句分配的未释放内存块?未释放的内存信息应该列在应用程序出口上,其中包含文件名和fileline。这样,就可以快速识别导致内存泄漏的新语句。

如果我是正确的,MFC让DEBUG_NEW定义做这个工作。但是非MFC C++应用程序呢?

使用的环境: Visual 2010和Windows 7 64位。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-03 19:57:40

Visual具有一些功能,可以帮助您在调试生成中查找内存泄漏,阅读http://msdn.microsoft.com/en-us/library/e5ewb1h3%28v=vs.80%29.aspx获取更多信息;还有很多需要考虑的地方。

通常还认为,尝试总是、使用shared_ptr类来自动管理内存的最佳实践。如果您没有使用shared_ptr,请考虑启动。

票数 2
EN

Stack Overflow用户

发布于 2011-03-03 19:58:58

有许多工具可以帮助您跟踪内存泄漏。它们都有其优点和缺点。

大多数工具的最大缺点是它们没有自动显示泄漏信息。在应用程序的生存期内,您必须显式地将内存状态转储到文件中,然后稍后再转储状态,然后比较这两种状态。这不太适合开发人员。

视觉检漏仪是一个更好的工具(在我看来)。它会自动记录应用程序末尾的所有泄漏,包括调用堆栈。请注意,Microsoft运行时也可以记录泄漏,但在没有调用堆栈的情况下会这样做。

我个人最喜欢的就是简单地做你自己的内存管理。实现全局新的并自己删除(注意:您需要实现一些变体),并在应用程序的末尾记录所有未释放的内存(使用最后销毁的全局变量在这里可能有帮助)。

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

https://stackoverflow.com/questions/5185747

复制
相关文章

相似问题

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