您的位置:首页 > 其它

WINDBG调试DUMP文件

2010-09-30 14:22 302 查看
对于windows程序员来说,程序运行时蓝屏是最郁闷的事情,如何找到蓝屏的原因则是首要解决的事情,好在微软提供了一系列的方法,为我们调试蓝屏提供了便利。

首先要用的工具是windbg,可以到微软的官方网站下载
http://msdl.microsoft.com/download/symbols/debuggers/dbg_x86_6.11.1.402.msi
再需要下载并安装一个符号链接库,微软官方网站也有提供,这个要根据你所调试系统的版本来选择
http://www.microsoft.com/whdc/devtools/debugging/symbolpkg.mspx#d
也可以不下载这个符号库,直接让windbg自己去网上下符号链接信息。

工具软件准备好了,就可以开始设置了,首先进入 “我的电脑”->“属性”->“高级”,选择“启动和故障恢复”选项卡,在“写入调试信息”一栏选择dump文件的转储方式,在“转储文件”中填入dump文件的保存路径。当出现蓝屏时,系统就会保存现场,将dump时的运行信息保存起来,以便我们用windbg来分析。有一条要注意,如果选择了完全内存转储,系统将会把内存中的所有信息都存进文件中,这会相当缓慢,所以你能看到蓝色屏幕上有一个跳动的数字,那就是保存的进度,必须耐心等待它保存到100%。

当蓝屏再次发生的时候,我们手上就有了dump文件了,通常在windows目录下的MEMORY.DMP,或者在windows下的miniDump文件夹中,以*.dmp的形式保存。把.dmp文件拷贝出来,就可以用windbg来调试。

首先,需要设置一下windbg的符号库,进入windbg的"File"->"Symbol File Path",在对话框的“symbol path”里面输入刚才下载的符号库的安装目录,最省心的方法是在这里填入SRV*c:/temp*http://msdl.microsoft.com/download/symbols就可以让windbg自动去下载所需要的符号信息。

将这里设置完,就可以开始调试.dmp文件了,打开“File”->“Open Crase Dump”,选择一个.dmp文件,windbg就开始下载符号库并进行初步的分析,当出现

*******************************************************************************
* *
* Bugcheck Analysis *
* *
*******************************************************************************

Use !analyze -v to get detailed debugging information.

BugCheck 1000007F, {8, f772ffe0, 0, 0}

Probably caused by : bxnd52x.sys ( bxnd52x+365f )

Followup: MachineOwner
---------

就可以在下面的输入框中敲入

!analyze -v;r;kv;lmtn;.logclose;

回车后就可以看到结果,比如我这里看到

BUGCHECK_STR: 0x7f_8

CUSTOMER_CRASH_COUNT: 3

DEFAULT_BUCKET_ID: DRIVER_FAULT_SERVER_MINIDUMP

CURRENT_IRQL: 2

LAST_CONTROL_TRANSFER: from 00000000 to f759a65f

STACK_TEXT:
f78dc000 00000000 00000000 00000000 00000000 bxnd52x+0x365f

STACK_COMMAND: kb

FOLLOWUP_IP:
bxnd52x+365f
f759a65f 53 push ebx

SYMBOL_STACK_INDEX: 0

SYMBOL_NAME: bxnd52x+365f

FOLLOWUP_NAME: MachineOwner

MODULE_NAME: bxnd52x

IMAGE_NAME: bxnd52x.sys

DEBUG_FLR_IMAGE_TIMESTAMP: 44a55446

FAILURE_BUCKET_ID: 0x7f_8_bxnd52x+365f

BUCKET_ID: 0x7f_8_bxnd52x+365f

Followup: MachineOwner
---------

说明蓝屏可能是由于bxnd52x.sys驱动的问题造成的,上网百度了一下,这个 bxnd52x.sys是网卡驱动,下载了一个更高版本的驱动重新安装,蓝屏的问题就解决了。




内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: