首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用.dmp分析WinDBG时遇到的问题

使用.dmp分析WinDBG时遇到的问题
EN

Stack Overflow用户
提问于 2010-08-12 16:18:16
回答 2查看 4.1K关注 0票数 1

首先,我要说,这是我第一次用WinDbg做任何事情,所以如果这是问题所在,请原谅我的愚蠢错误。我的网站一直在使用大量的内存,在阅读博客和看了苔丝·费尔南德斯的视频之后,我正在尝试使用WinDBG来分析我的转储文件。

设置:我的web服务器是一台Windows200864位机器,以32位的兼容性模式运行我的asp.net 2.0网站。我设置了一个环境变量来获取所有符号,这样在加载WinDbg时就不会出现错误

我在WinDbg中使用以下命令:

代码语言:javascript
复制
.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文件夹。我不知道这是否是问题的原因,但我一直把头撞在砖墙上,不知道还能做些什么,所以我希望能得到一些帮助。

非常感谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-08-20 05:04:29

看看的帖子。另外,确保您使用的调试器和sos具有与转储相同的位数。链接博客帖子中解释了这一点。因此,在您的例子中,使用64位的windbg,从Framework64加载sos.dll,并确保您的mscordacwks是"mscordacwks_amd64_amd64_2.0.50727.4016.dll“,并且位于可访问的路径中。我喜欢将这个程序集和匹配的sos.dll复制到它自己的文件夹中,但是YMMV。

票数 1
EN

Stack Overflow用户

发布于 2013-12-12 10:12:22

建立你的系统,就像约翰罗宾斯在他的伟大文章中解释的:https://www.wintellect.com/automatically-load-the-right-sos-for-the-minidump/

然后先执行一个!analyze -v

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3469770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档