1

我知道我的应用程序正在泄漏内存并且我使用 WinDbg 工具进行分析。我附加了 W3WP 进程并运行以下命令:

!地址——摘要

它产生了以下结果。

WinDbg 上 !address -summary 命令的结果

我希望有人帮助我理解这个结果并指导我或向我提供一个链接,这反过来将帮助我了解需要做什么

4

2 回答 2

2

MSDN链接解释了不同的内存区域是什么,就如何解释而言,您需要在泄漏之前和之后记录输出两次以查看增加的内容,我们可以通过查看最大的已使用区域来猜测,但您有一个标记为<unknown>。您可能需要先对符号进行排序,然后!address再次运行该命令。

此外,您可能会发现umdhdebugdiag可能会使您更容易发现泄漏,此外 WinDbg 中还有一个泄漏检测命令!heap -l

就链接而言,有一篇关于有用资源的相关帖子

于 2013-04-04T09:37:56.720 回答
1

未知 -> .Net 对象使用的内存

免费 -> 空闲区域

图像 -> dll 占用的内存。

Heap32 -> 本机对象占用的内存。(非.Net)

http://blogs.msdn.com/b/webtopics/archive/2010/04/02/address-summary-explained.aspx

于 2013-04-05T10:13:15.037 回答