分析用户模式转储文件

本主题包括以下内容:

使用 WinDbg 分析用户模式转储文件

WinDbg 可以分析用户模式内存转储文件。 创建转储文件的处理器或 Windows 版本不必与运行 WinDbg 的平台一致。

安装符号文件

在分析内存转储文件之前,需要访问生成转储文件的 Windows 版本的符号文件。 您选择用于分析转储文件的调试器将使用这些文件。 有关使用符号服务器的信息,请参阅 Microsoft公共符号

还需要安装用户模式进程的所有符号文件(应用程序或系统服务),这会使系统生成转储文件。 如果此代码是由您编写的,那么在编译和链接代码时应该已生成了符号文件。 如果这是商业代码,请在产品 CD-ROM 上查看,或联系软件制造商获取这些特定符号文件。

启动 WinDbg

若要分析转储文件,请使用 -z 命令行选项启动 WinDbg:

windbg -y SymbolPath -i ImagePath -z DumpFileName

-v 选项(详细模式)也很有用。 有关选项的完整列表,请参阅 WinDbg 命令行选项

如果 WinDbg 已在运行并且处于休眠模式,则可以通过选择 File | Open Crash Dump 菜单命令或按 Ctrl+D 快捷键打开故障转储。 出现“打开故障转储”对话框时,在“文件名”文本框中输入故障转储文件的完整路径和名称,或使用对话框选择正确的路径和文件名。 选择正确的文件后,选择打开

也可以使用 .opendump (打开转储文件)命令在调试器运行之后打开转储文件,后跟 g (Go)

可以同时调试多个转储文件。 这可以通过在命令行上加入多个 -z 开关(每个开关后跟一个不同的文件名),或使用 .opendump 添加额外的转储文件作为调试器目标来完成。 有关如何控制多目标会话的信息,请参阅调试多个目标

转储文件通常以扩展名.dmp或 .mdmp 结尾。 可以将网络共享或通用命名约定 (UNC) 文件名用于内存转储文件。

将转储文件打包到 CAB 文件中也很常见。 如果在 -z 选项后指定文件名(包括 .cab 扩展名),或者作为 .opendump命令的参数,调试器可以直接从 CAB 读取转储文件。 但是,如果单个 CAB 中存储了多个转储文件,调试器将只能读取其中一个。 调试器不会从 CAB 读取任何其他文件,即使它们是符号文件或与转储文件关联的可执行文件。

分析完整用户转储文件

完整用户转储文件分析类似于实时调试会话的分析。 有关哪些命令可用于在用户模式下调试转储文件的详细信息,请参阅调试器命令参考章节。

分析小型转储文件

分析用户模式小型转储文件的方式与完全用户转储相同。 但是,由于保留的内存量要少得多,可以执行的操作会受到更多限制。 尝试访问内存超出小型转储文件所保留内存的命令将无法正常工作。

其他技术

有关可用于从转储文件读取特定类型信息的技术,请参阅 从转储文件中提取信息

使用 CDB 分析用户模式转储文件

CDB 可以分析用户模式内存转储文件。 创建转储文件的处理器或 Windows 版本不必与运行 CDB 的平台一致。

安装符号文件

在分析内存转储文件之前,需要访问生成转储文件的 Windows 版本的符号文件。 您选择用于分析转储文件的调试器将使用这些文件。 有关使用符号服务器的信息,请参阅 Microsoft公共符号

还需要安装用户模式进程的所有符号文件(应用程序或系统服务),这会使系统生成转储文件。 如果此代码是由您编写的,那么在编译和链接代码时应该已生成了符号文件。 如果这是商业代码,请在产品 CD-ROM 上查看,或联系软件制造商获取这些特定符号文件。

正在启动 CDB

若要分析转储文件,请使用 -z 命令行选项启动 CDB:

cdb -y SymbolPath -i ImagePath -z DumpFileName

-v 选项(详细模式)也很有用。 有关选项的完整列表,请参阅 CDB 命令行选项

也可以使用 .opendump (打开转储文件)命令在调试器运行之后打开转储文件,后跟 g (Go)。 这样就可以同时调试多个转储文件。

可以同时调试多个转储文件。 这可以通过在命令行上加入多个 -z 开关(每个开关后跟一个不同的文件名),或使用 .opendump 添加额外的转储文件作为调试器目标来完成。 有关如何控制多目标会话的信息,请参阅调试多个目标

转储文件通常以扩展名.dmp或 .mdmp 结尾。 可以将网络共享或通用命名约定 (UNC) 文件名用于内存转储文件。

将转储文件打包到 CAB 文件中也很常见。 如果在 -z 选项后指定文件名(包括 .cab 扩展名),或者作为 .opendump命令的参数,调试器可以直接从 CAB 读取转储文件。 但是,如果单个 CAB 中存储了多个转储文件,调试器将只能读取其中一个。 调试器不会从 CAB 读取任何其他文件,即使它们是符号文件或与转储文件关联的可执行文件。

分析完整用户转储文件

完整用户转储文件分析类似于实时调试会话的分析。 有关哪些命令可用于在用户模式下调试转储文件的详细信息,请参阅调试器命令参考章节。

分析小型转储文件

分析用户模式小型转储文件的方式与完全用户转储相同。 但是,由于保留的内存量要少得多,可以执行的操作会受到更多限制。 尝试访问内存超出小型转储文件所保留内存的命令将无法正常工作。

其他技术

有关可用于从转储文件读取特定类型信息的技术,请参阅 从转储文件中提取信息