首先,我要说,这是我第一次用WinDbg做任何事情,所以如果这是问题所在,请原谅我的愚蠢错误。我的网站一直在使用大量的内存,在阅读博客和看了苔丝·费尔南德斯的视频之后,我正在尝试使用WinDBG来分析我的转储文件。
设置:我的web服务器是一台Windows200864位机器,以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堆段相关的命令可能无法正常工作。!垃圾堆和!verify堆可能会错误地抱怨堆一致性错误。GC堆数:1个请求详细信息的错误
我曾读过,这可能是由某些版本错配造成的,我认为这可能是问题所在。为了走到这一步,我不得不创造出一条道路
C:\Windows\Symbols\mscordacwks_AMD64_x86_2.0.50727.4016.dll\49CC5B00590000\mscordacwks_AMD64_x86_2.0.50727.4016.dll
因此,当我调用!ee堆-gc时,库就会被加载(否则会出现一些其他错误)。问题是,我从普通的mscordacwks.dll文件夹中获取了这个.NET,而不是Framework64文件夹。我不知道这是否是问题的原因,但我一直把头撞在砖墙上,不知道还能做些什么,所以我希望能得到一些帮助。
非常感谢。
发布于 2010-08-20 05:04:29
发布于 2013-12-12 10:12:22
建立你的系统,就像约翰罗宾斯在他的伟大文章中解释的:https://www.wintellect.com/automatically-load-the-right-sos-for-the-minidump/
然后先执行一个!analyze -v。
https://stackoverflow.com/questions/3469770
复制相似问题