每当调试会话可访问时,都有最后一个 事件。 这是导致会话变得可访问的事件。 事件目标是生成最后一个事件的目标。 当会话变得可访问时,当前目标将设置为事件目标。 GetLastEventInformation 返回最后一个事件的详细信息。 在DEBUG_REQUEST_GET_CAPTURED_EVENT_CODE_OFFSET和DEBUG_REQUEST_READ_CAPTURED_EVENT_CODE_STREAM请求操作中,返回事件发生时的指令指针和该指针处的内存。
如果目标是故障转储文件, 则最后一个事件 是在创建转储文件之前发生的最后一个事件。 此事件存储在转储文件中,当转储文件作为调试目标获取时,引擎将为事件回调生成该事件。
如果目标是内核模式目标并且发生了 bug 检查 ,则可以使用 ReadBugCheckData 找到 bug 检查代码和相关参数。
如果目标是用户模式 Minidump,转储文件生成器可能会存储额外的事件。 通常,这是引发生成器保存转储文件的事件。 GetStoredEventInformation 返回此事件的详细信息,以及通过 Request 操作 DEBUG_REQUEST_TARGET_EXCEPTION_CONTEXT、DEBUG_REQUEST_TARGET_EXCEPTION_THREAD 和 DEBUG_REQUEST_TARGET_EXCEPTION_RECORD。
转储文件可能包含静态事件列表。 每个事件表示特定时间点的目标快照。 GetNumberEvents 返回此列表中的事件数。 有关列表中每个事件的说明,请使用 GetEventIndexDescription。 若要将此列表中的事件设置为当前事件,请使用 SetNextEventIndex 方法;调用 WaitForEvent 后,事件将成为当前事件。 若要确定列表中的哪个事件是当前事件,请使用 GetCurrentEventIndex。