如果您想要一种相当简单的方法来找出导致操作系统崩溃的原因,并且在大约 90% 的时间里都可以正常工作(假设您有可用的崩溃转储),请尝试以下操作:
- 下载 WinDbg 作为Windows 调试工具包的一部分。请注意,您只需要安装名为 Debugging Tools for Windows 的组件。
- 运行 WinDbg
- 从文件菜单中选择“打开故障转储”
- 当转储文件已加载类型
analyze -v
并按回车键
- WinDbg 将对崩溃进行自动分析,并在崩溃时提供大量有关系统状态的信息。它通常能够告诉您哪个模块出现故障以及导致崩溃的错误类型。您还应该获得可能对您有帮助也可能没有帮助的堆栈跟踪。
- 另一个有用的命令是
kb
打印堆栈跟踪。在该列表中,查找包含.sys
. 这通常是导致车祸的司机。
请注意,如果您希望堆栈跟踪为您提供函数名称,则必须在 WinDbg中配置符号。去做这个:
- 创建一个文件夹,例如 C:\symbols
- 在 WinDbg 中,打开文件 -> 符号文件路径
- 添加:
SRV*C:\symbols*http://msdl.microsoft.com/download/symbols
这将缓存来自 Microsoft 服务器的符号文件。
如果自动分析不够充分,那么 WinDbg 提供了多种命令,使您能够准确计算出崩溃时发生的情况。在这种情况下,帮助文件是一个很好的起点。