资料:在 Windows XP 中内存转储后如何搜集信息

来源:互联网 发布:mysql 合并查询结果 编辑:程序博客网 时间:2024/05/03 09:05
概要
本文介绍如何搜集有关出现在蓝屏上的错误信息的更多信息。请注意,这些步骤不总是提供最终的答案,可能仅仅是指出了另一个问题。

处理事件日志消息
• 将 Windows 配置为写出含有检测错误信息的事件日志消息:1. 单击开始按钮,然后单击控制面板。 
2. 双击系统图标,然后单击高级选项卡。 
3. 在"启动和故障恢复"部分,单击设置,然后单击选择"将事件写入系统日志"复选框。 
一条事件日志消息随即写入系统日志。
 
• 一条事件日志消息随即写入系统日志。事件日志的说明和格式与计算机写入 Memory.dmp 文件时屏幕上所显示的格式不同,但大部分信息是相同的。以下是事件日志的一个示例:
事件 ID:1001 
来源:保存转储
说明:The computer has rebooted from a bugcheck.
The bugcheck was:0xc000021a (0xe1270188, 0x00000001, 0x00000000, 0x00000000).Microsoft Windows NT (v15.1381)。
A dump was saved in:C:/WINNT/MEMORY.DMP. 
此信息包含 STOP 代码 0xc000021a 和四个参数。在解决某些类型的 STOP 代码问题时,这些信息可能是非常有用的。参数的含义因 STOP 代码的类型而异。

有关参数含义的信息,请在 Microsoft 知识库中查找具体的 STOP 代码。(Microsoft 知识库并没有包含所有的 STOP 代码参数。)若要查询 Microsoft 知识库,请访问以下 Microsoft Web 站点:
http://support.microsoft.com/support (http://support.microsoft.com/?scid=http%3a%2f%2fsupport.microsoft.com%2fsupport) 

使用 Dumpchk.exe 确定内存转储信息

如果使用 Dumpchk.exe,可以确定以上所有信息和产生停止消息的驱动程序的地址。此信息通常使您能够找到疑难解答的着手点。运行 Dumpchk.exe 之前,一定要调整命令提示符的属性,将屏幕缓冲区大小高度设为 999。这一高度使您能够向后滚动查看输出。在命令提示窗口运行 Dumpchk.exe,使用以下语法:
dumpchk.exe Memory.dmp
这是输出中最有用部分的示例。 MachineImageType     i386
Quote:
NumberProcessors     1
BugCheckCode         0xc000021a
BugCheckParameter2   0x00000001
BugCheckParameter3   0x00000000
BugCheckParameter4   0x00000000

ExceptionCode        0x80000003
ExceptionFlags       0x00000001
ExceptionAddress     0x8014fb84

请注意,并非所有部分都提供相同的信息。信息因 STOP 代码的类型而异。前面的信息告诉您 STOP 代码 (0xc000021a) 和参数(0xe1270188、0x00000001、0x00000000、0x00000000),以及调用异常 (0x8014fb84) 的驱动程序的地址。可以利用运行 Pstat.exe(位于 Resource Kit 中)所产生的输出,用此地址来识别驱动程序名。

Dumpchk.exe 还可以验证转储是否有效。

有关如何使用 Dumpchk.exe 的其他信息,请单击下面的文章编号,查看 Microsoft 知识库中的文章: 
156280 (http://support.microsoft.com/kb/156280/EN-US/) How to Use Dumpchk.exe to Check a Memory Dump File(如何使用 Dumpchk.exe 检查内存转储文件)

使用 Pstat.exe 识别驱动程序

运行 Pstat.exe 这个资源工具包实用工具,可以对当前计算机上运行的进程和驱动程序有一个初步的了解。出于诊断目的,最有用的信息是出现在输出最后的加载驱动程序列表。

从命令行运行 Pstat.exe。通过使用以下命令语法,可以将由 Pstat.exe 接收到的信息输入到文件:
pstat.exe > filename
这是出现在输出最后的驱动程序列表的示例:
Quote:
ModuleName   LoadAddr  Code    Data    Paged  LinkDate
   ----------------------------------------------------------------------
Ntoskrnl.exe 80100000  270272   40064  434816 Sun May 11 00:10:39 1997
Hal.dll      80010000   20384    2720    9344 Mon Mar 10 16:39:20 1997
Aic78xx.sys  80001000   20512    2272       0 Sat Apr 05 21:16:21 1997
Scsiport.sys 801d7000    9824      32   15552 Mon Mar 10 16:42:27 1997
Disk.sys 80008000    3328       0    7072 Thu Apr 24 22:27:46 1997
Class2.sys   8000c000    7040       0    1632 Thu Apr 24 22:23:43 1997
Ino_flpy.sys 801df000    9152    1472    2080 Tue May 26 18:21:40 1998
Ntfs.sys 801e3000   68160    5408  269632 Thu Apr 17 22:02:31 1997
Floppy.sys   f7290000    1088     672    7968 Wed Jul 17 00:31:09 1996
Cdrom.sys    f72a0000   12608      32    3072 Wed Jul 17 00:31:29 1996
Cdaudio.sys  f72b8000     960       0   14912 Mon Mar 17 18:21:15 1997
Null.sys     f75c9000       0       0     288 Wed Jul 17 00:31:21 1996
KSecDD.sys   f7464000    1280     224    3456 Wed Jul 17 20:34:19 1996
Beep.sys     f75ca000    1184       0       0 Wed Apr 23 15:19:43 1997
Cs32ba11.sys fcd1a000   52384   45344   14592 Wed Mar 12 17:22:33 1997
Msi8042.sys  f7000000   20192    1536       0 Mon Mar 23 22:46:22 1998
Mouclass.sys f7470000    1984       0       0 Mon Mar 10 16:43:11 1997
Kbdclass.sys f7478000    1952       0       0 Wed Jul 17 00:31:16 1996
Videoprt.sys f72d8000    2080     128   11296 Mon Mar 10 16:41:37 1997
Ati.sys      f7010000     960    9824   48768 Fri Dec 12 15:20:37 1997
Vga.sys      f7488000     128      32   10784 Wed Jul 17 00:30:37 1996
Msfs.sys     f7308000     864      32   15328 Mon Mar 10 16:45:01 1997
Npfs.sys     f7020000    6560     192   22624 Mon Mar 10 16:44:48 1997
Ndis.sys     fccda000   11744     704   96768 Thu Apr 17 22:19:45 1997
Win32k.sys   a0000000 1162624   40064       0 Fri Apr 25 21:17:32 1997
Ati.dll      fccba000  106176   17024       0 Fri Dec 12 15:20:08 1997
Cdfs.sys     f7050000    5088     608   45984 Mon Mar 10 16:57:04 1997
Ino_fltr.sys fc42f000   29120   38176    1888 Tue Jun 02 16:33:05 1998
Tdi.sys      fc4a2000    4480      96     288 Wed Jul 17 00:39:08 1996
Tcpip.sys    fc40b000  108128    7008   10176 Fri May 09 17:02:39 1997
Netbt.sys    fc3ee000   79808    1216   23872 Sat Apr 26 21:00:42 1997
El90x.sys    f7320000   24576    1536       0 Wed Jun 26 20:04:31 1996
Afd.sys      f70d0000    1696     928   48672 Thu Apr 10 15:09:17 1997
Netbios.sys  f7280000   13280     224   10720 Mon Mar 10 16:56:01 1997
Parport.sys  f7460000    3424      32       0 Wed Jul 17 00:31:23 1996
Parallel.sys f746c000    7904      32       0 Wed Jul 17 00:31:23 1996
ParVdm.sys   f7552000    1312      32       0 Wed Jul 17 00:31:25 1996
Serial.sys   f7120000    2560       0   18784 Mon Mar 10 16:44:11 1997
Rdr.sys      fc385000   13472    1984  219104 Wed Mar 26 14:22:36 1997
Mup.sys      fc374000    2208    6752   48864 Mon Mar 10 16:57:09 1997
Srv.sys      fc24a000   42848    7488  163680 Fri Apr 25 13:59:31 1997
Pscript.dll  f9ec3000       0       0       0
Fastfat.sys  f9e00000    6720     672  114368 Mon Apr 21 16:50:22 1997
NTdll.dll    77f60000  237568   20480       0 Fri Apr 11 16:38:50 1997
   ----------------------------------------------------------------------
总计          2377632  255040 1696384


通过使用 LoadAddr 列中的起始地址,可以将异常地址与驱动程序名进行匹配。以 8014fb84 为例,可以确定 Ntoskrnl.exe 在异常地址下有最近的加载地址,并且是最有可能调用异常的驱动程序。有了这些信息,您就可以到 Microsoft 知识库查找与您的情况相匹配的已知问题。 
 
原创粉丝点击