繁体   English   中英

将进程 memory 转储到磁盘以分析 memory 泄漏

[英]Dump process memory to disk to analyze for memory leaks

我有一个 32 位 msvc++ 应用程序在泄漏 memory 的生产环境中运行。 它基本上会运行几个小时,直到耗尽所有 3 GB 的可寻址 memory 并终止。

我在想如果有办法暂停一个进程并将它的 memory 转储到磁盘,我可以分析 memory 以查看它是否有任何模式泄漏。

不确定这是否可能。 我只是把科学扔在墙上,看看有什么能坚持下去。

一些输入将不胜感激。

只要您确信您有某种方法可以通过分析进程的堆来找到有用的东西,这非常简单。 所涉及的工具都是免费的,说明在这里:转储文件

也就是说,如果您可以只运行一段时间的调试版本,CRT 将为您完成所有工作。 请参阅使用 CRT 库查找 Memory 泄漏

对于真正快速的方法,Purify 或 DevPartner Studio 通常会将您指向泄漏并显示从分配位置到泄漏位置的跟踪。 它也会暴露很多其他错误。

如果您有时间,使用 CRT 内置工具很好。 这些工具要花钱,所以我想你要权衡使用 CRT memory 转储跟踪它们所需的时间成本和许可证成本。

在进行 Windows 开发时,这有助于快速查明许多漏洞。 我更喜欢 DevPartner 而不是 Purify,但可能是因为我只在 Linux 下使用了 Purify,发现它的工作方式太麻烦了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM