其次,加载wow64exts模块,因为需要这个模块帮助把64位的dump,转源迅换成32位的dump。输入 .load wow64exts
再次,进行转换。输入!sw
最后,按照分析32位dump文件的方法,分析这个dump。
需要为Windbg软件设置符号表路径,作为蓝屏原因分析数据库,否则软件将没有作用。单击File--选择Symbol File Path,在d出的对话框Symbol Path文本框中输入SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols,单击OK。
设置完毕后单击File--选择Open Crash Dump来槐虚打开蓝屏文件,在d出的对话框中点选到C:\Windows\Minidump文件夹,单击我们要分析的蓝屏文件,单击打开。
在d出的对话框Save Information for workspace?(衫明灶是否保存信息到工作区)中单击Yes。(如果下次不想再被提示,可以勾选Don't ask again in the WinDbg session)。
接下来就是对文件进行分析,这需要一定的经验和知识。这里我们着重可以看一下System Uptime(开机时间)和Probably Caused By(可能引起故障的原因是)。
需要进一步分析,可以单击!analyze -v,此时我们可以从中提取到蓝屏错误代码和引起蓝屏的或扮程序名称,再通过网络搜索这些程序名和代码等方式弄清原因。
所以现在大家都开始分析dump了,上次微软的大牛们过来给表演了一下windbg,1 安装windbg (从微软网站上下载,free), 运行windbg, 设置symbol path,
File- Symbol File Path,
输入SRV*C:\websymbols*http://msdl.microsoft.com/download/symbols,
如果你已经有了symbo path, 直接输入就可以了。
2. 生成一个dump, 可以用windbg提供的adplus命令来生成,或者有一袜此个简单的工具, IIS
Diagnostics, 这个也可以从微软下, 假设现在你的application hang 或者 crash 了,
运行这个Diagnostics, canceld出选择rule type的对话框,
然后选择process tab,
找到你要dump的进程, 右键生成dump就可以了, 然后可以顺便用这个工碰棚具直接分析了,还是说winbdg吧。
3. 现在dump有了, 运行windbg,打开这个dump (File- Open
Crash Dump...), 运行下面的几个命令.
.load path\SOS.dll
(path是全路经,
一般在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727,
根据自己.net版本选不同的)
.reload -f mscorwks.dll!threads
(察看所有线程(managed),
这步一般就可以看到exception在哪一个线程了, 假设看到在 0 thread)~0s
(转到 0 thread)
!clrstack (查看call stack)
然后可以通过windbg上面的一些快捷功能打开 Process and Threads 窗口 和 call stack
窗口,双击call stack 里面的 function call, 就可以跳转到source code了。
!printException
(查看exception,笑好则 仅限于managed exception, 找到第一次被抛出来的exception address,
一看就知道哪个了)
!Printexception address
(查看具体的exception)入门结束,不求甚解,慢慢学习.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)