目标

调试器引擎支持调试不同类型的目标、用户模式内核模式目标、实时目标和故障转储文件以及本地和远程目标。 可通过不同的方法将引擎连接到这些不同类型的目标。

故障转储文件

用户模式和内核模式故障转储文件都使用 OpenDumpFile 打开。 该引擎还可以使用 WriteDumpFile2 从目标创建转储文件。

实时、User-Mode目标

调试器引擎可以创建和附加到用户模式进程。

创建进程是通过为新进程提供命令行(可选)初始目录和环境来完成的。 然后,引擎可以连接到新进程,或者在它连接到另一个进程时使新进程保持挂起状态。 例如,调试由客户端和服务器组成的应用程序时,可以创建处于挂起状态的客户端并附加到已运行的服务器,从而允许在客户端运行和引发服务器操作之前设置服务器断点。

从进程分离时,引擎可以选择让进程正常运行、终止进程或放弃进程, (暂停进程,直到另一个调试器连接到进程或) 终止。

可以查询引擎,以获取有关计算机上运行的所有用户模式进程的信息,包括用于启动进程的进程 ID 和可执行映像的名称。 此信息可用于帮助查找要调试的进程。

实时、Kernel-Mode目标

方法 AttachKernel 将调试器引擎连接到 Windows 内核。

远程目标

使用调试器引擎进行远程调试时,可能还有两个额外的步骤:

  1. 连接到主机引擎。 如果主机引擎不是本地引擎实例,请使用 DebugConnect 创建连接到主机引擎的客户端对象。

  2. 将主机引擎连接到进程服务器或内核连接服务器。 如果主机引擎未直接连接到目标,则必须连接到进程服务器或内核连接服务器。

现在,客户端可以告知主机引擎通过进程服务器或内核连接服务器获取目标。

获取目标

获取目标时,在目标生成事件之前,目标获取不会完成。 通常,这意味着首先调用方法将调试器附加到目标,然后调用 WaitForEvent 让目标生成事件。 当目标为故障转储文件时,这仍然有效,因为这些文件始终存储一个事件(通常是导致创建转储文件的事件)。

其他信息

有关附加到目标的详细信息,请参阅 连接到目标