事件信息

每当调试会话可访问时,都有最后一个 事件。 这是导致会话变得可访问的事件。 事件目标是生成最后一个事件的目标。 当会话变得可访问时,当前目标将设置为事件目标。 最后一个事件的详细信息由 GetLastEventInformation 返回。 最后一个事件的指令指针以及事件发生时指令指针处的内存由 请求 操作 DEBUG_REQUEST_GET_CAPTURED_EVENT_CODE_OFFSETDEBUG_REQUEST_READ_CAPTURED_EVENT_CODE_STREAM返回。

如果目标是故障转储文件,则最后一个 事件 是创建转储文件之前发生的最后一个事件。 此事件存储在转储文件中,当获取转储文件作为调试目标时,引擎会为事件回调生成它。

如果目标是内核模式目标并且发生了 bug 检查,则可以使用 ReadBugCheckData 找到 bug 检查代码和相关参数。

如果目标是用户模式微型转储,则转储文件生成器可能会存储其他事件。 通常,这是引发生成器保存转储文件的事件。 此事件的详细信息由 GetStoredEventInformation请求 操作 DEBUG_REQUEST_TARGET_EXCEPTION_CONTEXTDEBUG_REQUEST_TARGET_EXCEPTION_THREADDEBUG_REQUEST_TARGET_EXCEPTION_RECORD返回。

转储文件可能包含静态事件列表。 每个事件表示目标在特定时间点的快照。 此列表中的事件数由 GetNumberEvents 返回。 有关列表中每个事件的说明,请使用 GetEventIndexDescription。 若要将此列表中的事件设置为当前事件,请使用 SetNextEventIndex 方法;调用 WaitForEvent 后,事件将成为当前事件。 若要确定列表中的哪个事件是当前事件,请使用 GetCurrentEventIndex