本文作者:爱分享吧

使用windbg排查各种应用程序报错

爱分享吧 1个月前 ( 09-09 ) 313 抢沙发
使用windbg排查各种应用程序报错摘要: 【问题现象】explorer.exe 应用程序报错。如图【原因说明】遇到explorer.exe应用程序报错,正常来讲explorer.exe 不会无缘无故的报错,一般都是第三方D...

【问题现象】

explorer.exe 应用程序报错。

如图

1.jpg

【原因说明】

遇到explorer.exe应用程序报错,正常来讲explorer.exe 不会无缘无故的报错,一般都是第三方DLL 异常导致报错,然而如何快速的定位是哪个dll 程序是一个问题。

首先经常用到的定位报错DLL的方法就是使用进程工具PCHunter 查看explorer.exe 加载的多少模块,然后根据公司名来先排除微软的本身的DLL模块,然后再逐一删除排查具体是什么模块导致的报错。如下图 使用PCHunter 选取一个explorer.exe 然后右键 “查看进程模块”,红色的圈起来的都有可能是导致崩溃的DLL模块,在这里我是先把微软的DLL排除,当然有些伪装微软的就要细心的观察才能发现。

2.jpg

【解决方案】

然后我们今天说的重点是windbg 来快速定位报错。

以explorer.exe 进程报错,简单说的 一下排查的步骤。

1)我们先要准备的两款工具 windbg + PCHunter(前身Xuetr)
2)由于explorer.exe 崩溃的特殊性,我们要先同时打开 windbg,然后选择File->Open Executable... 然后浏览到报错的进程c:\windows\explorer.exe 先不要急着打开,再打开任务管器结束explorer.exe 快速的点击 windbg 的打开按钮。

如图:

3.jpg

3)然后就会出现一个中断,然后我们输入 g 继续执行,再报错的时候它会自动中断。

如图:

4)再次中断之后我们输入 kb 就可以查看堆栈里 cakeu32+0x59dd 异常,向上拉可以查看到报错的DLL的路径 c:\program files\aik1546\cakeu32.dll 报错。


6.jpg

5)验证问题,找到DLL之后就该验证是不是它导致的报错
打开PCHunter 找到explorer.exe 右建查看模块信息,找到 c:\program files\aik1546\cakeu32.dll 右键删除之。

7.jpg

6)结束一把explorer.exe 世界安静了,不再报错。

7)至于 这个 c:\program files\aik1546\cakeu32.dll 谁创建的,大家以后有遇到可以用360MD 开机监控。

此方法可以同样可以应用到其它应用程序报错,比如IE报错。(注:此方法不适合排查游戏报错,因为游戏一般会检测调试软件。

文章版权及转载声明:

作者:爱分享吧本文地址:http://shykx.com/FAQ/349.html发布于 1个月前 ( 09-09 )
文章转载或复制请以超链接形式并注明出处爱分享吧|软件分享平台

分享到:
赞(0

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

发表评论

快捷回复:

评论列表 (暂无评论,313人围观)参与讨论

还没有评论,来说两句吧...