【发布时间】:2011-03-29 00:57:15
【问题描述】:
我首先要说这是我第一次使用 WinDbg 做任何事情,如果这是问题,请原谅我的愚蠢错误。我的网站一直在使用大量内存,在阅读了 Tess Fernandez 的博客和观看视频后,我正在尝试使用 WinDBG 来分析我的转储文件。
设置:我的 Web 服务器是一台 Windows 2008 64 位机器,以 32 位兼容模式运行我的 asp.net 2.0 网站。我已经设置了一个环境变量来获取所有符号,所以我在加载 WinDbg 时不会出错
我在 WinDbg 中使用以下命令:
.load C:\Windows\Microsoft.NET\Framework64\v2.0.50727\sos.dll
.load C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
!eeheap -gc
并得到以下错误:
垃圾收集器数据结构 不处于有效状态 遍历。它要么在“计划 阶段,”对象被移动的地方 周围,或者我们在 初始化或关闭 gc 堆。与显示相关的命令, 查找或遍历对象 因为 gc 堆段可能不起作用 适当地。 !dumpheap 和 !verifyheap 可能会错误地抱怨堆 一致性错误。 GC 次数 堆:1 请求详细信息时出错
我已阅读这可能是由某些版本不匹配引起的,我认为这可能是问题所在。为了做到这一点,我不得不创建路径
C:\Windows\Symbols\mscordacwks_AMD64_x86_2.0.50727.4016.dll\49CC5B00590000\mscordacwks_AMD64_x86_2.0.50727.4016.dll
所以当我调用 !eeheap -gc 时会加载库(否则会出现其他一些错误)。问题是我从普通的 .NET 文件夹中获取了这个 mscordacwks.dll 而不是 Framework64 文件夹。我不知道这是否是问题的原因,但我一直在用头撞砖墙,真的不知道还能做什么,所以我希望能得到一些帮助。
非常感谢。
【问题讨论】:
标签: .net asp.net memory memory-leaks windbg