什么是 WinDbg <unknown> 内存?
What is WinDbg <unknown> Memory?
我正在调试一个内存泄漏的 Winforms 应用程序。在客户提供的转储文件中,未知内存使用量与 .NET 堆大小之间存在较大差异。 (大约 1000mb 对 200mb)。那么除了 CLR 完成的 VirtualAllocs 之外,未知段中还有什么?
!eeheap -gc 输出
!地址-摘要输出
WinDbg 报告为 <unknown>
的内存是通过 VirtualAlloc()
分配的内存。一些常见的来源是:
- .NET(因为它有自己的堆管理器)
- 在您的代码中直接
VirtualAlloc()
调用
- C++
HeapAlloc()
调用大于某个限制(如果我没记错的话是 512k)
- MSXML
- 位图(根据@Hans Passant的评论)
我正在调试一个内存泄漏的 Winforms 应用程序。在客户提供的转储文件中,未知内存使用量与 .NET 堆大小之间存在较大差异。 (大约 1000mb 对 200mb)。那么除了 CLR 完成的 VirtualAllocs 之外,未知段中还有什么?
!eeheap -gc 输出
!地址-摘要输出
WinDbg 报告为 <unknown>
的内存是通过 VirtualAlloc()
分配的内存。一些常见的来源是:
- .NET(因为它有自己的堆管理器)
- 在您的代码中直接
VirtualAlloc()
调用 - C++
HeapAlloc()
调用大于某个限制(如果我没记错的话是 512k) - MSXML
- 位图(根据@Hans Passant的评论)