什么是WinDbg< unknown>记忆? [英] What is WinDbg <unknown> Memory?

查看:126
本文介绍了什么是WinDbg< unknown>记忆?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在调试Winforms应用程序以防内存泄漏。客户提供的转储文件中,未知内存使用量与.NET堆大小之间存在很大差异。 (约1000mb和200mb)。那么,除了CLR完成的VirtualAllocs之外,未知段中还有什么?

I'm debugging a Winforms application for a memory leak. In the dump file provided by the customer there is a large discrepancy between the unknown memory usage and the .NET Heap size. (Approximately 1000mb vs 200mb). So what is in the unknown segment other than the VirtualAllocs done by the CLR?

!eeheap -gc输出

!eeheap -gc output

!地址-摘要输出

推荐答案

报告为< unknown>的内存是通过 VirtualAlloc() 。一些众所周知的来源是:

Memory that is reported as <unknown> by WinDbg is memory that was allocated via VirtualAlloc(). Some commonly known sources are:


  • .NET(因为它具有自己的堆管理器)

  • 在代码中直接 VirtualAlloc()调用

  • C ++ HeapAlloc() 大于一些限制(如果我没记错的话,则为512k)

  • MSXML

  • 位图(根据 @ Hans Passant 的评论)

  • .NET (because it has its own heap manager)
  • direct VirtualAlloc() calls in your code
  • C++ HeapAlloc() calls that are larger than some limit (512k if I recall correctly)
  • MSXML
  • Bitmaps (according to @Hans Passant's comment)

这篇关于什么是WinDbg&lt; unknown&gt;记忆?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆