煎饼 发表于 2008-11-26 10:47:57

计算机总是重新启动怎么解决? 使用 windbg 分析 minidump

<DIV id=BlogArticleDetail style="FONT-SIZE: 14px">
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 许多人可能经常遇见计算机频繁重新启动的问题,总是难于解决问题,最后只能重新安装操作系统.我介绍的这篇文章应该能解决许多人这样的痛苦.</P>
<P>  通常在荡机的瞬间,操作系统会形成一个存储器转储文件。 这个文件是当计算机死机的瞬间的内存的映像.该文件通常放置在系统目录下的minidum目录下.例如 C:\WINDOWS\Minidump\Mini082106-01.dmp. 所以对该文件的分析就能很快查找到问题的所在.</P>
<P>  这个文件打开看看将发现是一堆乱码.怎么分析该文件呢.通常我们使用 microsoft 提供的 WinDbg 工具来分析.这个工具可以从网站上下载得到.:<A href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"><FONT color=#0000ff>http://www.microsoft.com/whdc/devtools/debugging/default.mspx</FONT></A>.</P>
<P>  当安装这个工具后,则就可以使用 WinDbg 来对 mimidump文件进行分析了.打开WinDbg ,首先要设置符号文件路径.符号文件是用来分析错误原因位置信息的文件.这个文件可以从  的网站随着WinDbg 一起下载,当然了比较大了.如果你不愿意下载,则可以设置连接到网站上的地址就可以了.我通常采用这种方法.</P>
<P>  设置符号文件的地址: 在WinDbg 的菜单中: File--&gt; Symbol File Path 中,设置 :</P>
<P>SRV*DownstreamStore*http://msdl.microsoft.com/download/symbols ,如下图:<A href="http://wcy234.photo.hexun.com/8581603_d.html" target=_blank><IMG alt=查看更多精彩图片 src="http://photo2.hexun.com/p/2006/0907/42908/b_53DB3BE6AFE23ED0.jpg" onload="var image=new Image();image.src=this.src;if(image.width>0 &amp;&amp; image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}" border=0></A><BR><BR><A href="http://wcy234.photo.hexun.com/8580820_d.html" target=_blank></A></P>
<P>然后就可以打开 minidump文件进行分析了 .  File--&gt; Open Crash&nbsp;Dump , ,例如打开&nbsp;C:\WINDOWS\Minidump\Mini082106-01.dmp .等待一会,根据前面设置的符号文件的地址,windbg 连接到 microsoft 的网站,得到符号信息.</P>
<P>这个时候 在WinDbg 下面的命令行运行: <STRONG>!analyze -v 将得到详细的信息. </STRONG>例如我得到的信息如下:</P><A href="http://wcy234.photo.hexun.com/8581101_d.html" target=_blank></A>
<P><A href="http://wcy234.photo.hexun.com/8581101_d.html" target=_blank></A></P>
<P><A href="http://wcy234.photo.hexun.com/8581604_d.html" target=_blank><IMG alt=查看更多精彩图片 src="http://photo2.hexun.com/p/2006/0907/42908/b_1EE7B1392B2F0EA7.jpg" onload="var image=new Image();image.src=this.src;if(image.width>0 &amp;&amp; image.height>0){if(image.width>=700){this.width=700;this.height=image.height*700/image.width;}}" border=0></A><BR><BR>&nbsp;</P>
<P>  从这里我们可以知道当前错误是出在SkyProcs.sys这个文件上(ERROR: Module load completed but symbols could not be loaded for SkyProcs.sys ). 至于具体的原因就是RIVER_IRQL_NOT_LESS_OR_EQUAL ,这个错误一般是驱动程序中IRQL的问题.</P>
<P>  如果不懂这些技术问题,就查找到SkyProcs.sys这个文件,然后就知道了是哪个程序出现了问题,删除或者卸载掉该软件,一般情况下就能解决计算机频繁重新启动的问题.到现在看来这个问题的原因多数的安装的驱动程序出现了问题.</P>
<P><STRONG>  附加:</STRONG></P>
<P>  一般的情况下,计算机上都自动设置了minidump 的转储,假设没有,则按照下面的步骤进行设置,只有形成了MINIDUMP文件,才能进行分析.</P>
<P>  配置转储类型 ,要配置启动和故障恢复选项以使用小存储器转储文件,请按照下列步骤操作。<BR><BR><B>注意</B>:由于 Microsoft Windows 有多个版本,因此下列步骤可能与在您的计算机上执行的步骤有所不同。如果是这样,请参阅您的产品文档来完成这些步骤。 </P>
<P>1: 单击“开始”,指向“设置”,然后单击“控制面板”。 </P>
<P>2: 双击“系统”。</P>
<P>3: 单击“高级”选项卡,然后单击“启动和故障恢复”下的“设置”。</P>
<P>4: 在“写入调试信息”列表中单击“小存储器转储 (64k)”。<BR><BR>要更改小存储器转储文件的文件夹位置,请在“转储文件”框中(或在“小转储目录”框中,具体取决于 Windows 的版本)键入新路径。</P></DIV>
页: [1]
查看完整版本: 计算机总是重新启动怎么解决? 使用 windbg 分析 minidump