调试器引擎支持调试不同类型的目标、用户模式和内核模式目标、实时目标和故障转储文件,以及本地和远程目标。 可通过不同的方法将引擎连接到这些不同类型的目标。
故障转储文件
使用 OpenDumpFile 打开用户模式和内核模式故障转储文件。 该引擎还可以使用 WriteDumpFile2 从目标创建转储文件。
实时、User-Mode 目标
调试器引擎可以创建并附加到用户模式进程。
通过为新进程提供命令行和初始目录和环境(可选)来创建进程。 然后,引擎可以连接到新进程,也可以在其连接到另一个进程时将新进程挂起。 例如,在调试由客户端和服务器组成的应用程序时,可以创建处于挂起状态的客户端并附加到已运行的服务器,从而允许在客户端运行并引发服务器作之前设置服务器断点。
从进程分离时,引擎可以选择继续让进程正常运行、终止进程或弃置进程(保持挂起,直到另一个调试器附加到进程或进程被终止)。
可以查询引擎,以获取有关计算机上运行的所有用户模式进程的信息,包括用于启动进程的可执行映像的进程 ID 和名称。 此信息可用于帮助查找要调试的进程。
实时、Kernel-Mode 目标
AttachKernel 方法将调试器引擎连接到 Windows 内核。
远程目标
使用调试器引擎远程调试时,可能有两个额外的步骤:
连接到主机引擎。 如果主机引擎不是本地引擎实例,请使用 DebugConnect 创建连接到主机引擎的客户端对象。
将主机引擎连接到进程服务器或内核连接服务器。 如果主机引擎不能直接连接到目标,那么它必须连接到能够做到这一点的进程服务器或内核连接服务器。
现在,客户端可以告知主机引擎通过进程服务器或内核连接服务器获取目标。
获取目标
获取目标时,在目标生成事件之前,不会完成对目标的获取。 通常,这意味着首先调用一个方法以将调试器附加到目标,然后调用 WaitForEvent 以让目标生成事件。 当目标为故障转储文件时,这仍然适用,因为这些文件始终存储事件,通常存储导致创建转储文件的事件。
其他信息
有关连接至目标的详细信息,请参阅 连接到目标。