ContinueDebugEvent 函数 (debugapi.h)

使调试程序能够继续之前报告了调试事件的线程。

语法

BOOL ContinueDebugEvent(
  [in] DWORD dwProcessId,
  [in] DWORD dwThreadId,
  [in] DWORD dwContinueStatus
);

参数

[in] dwProcessId

要继续的进程的进程标识符。

[in] dwThreadId

要继续的线程的线程标识符。 进程标识符和线程标识符的组合必须标识以前报告了调试事件的线程。

[in] dwContinueStatus

用于继续报告调试事件的线程的选项。

含义
DBG_CONTINUE
0x00010002L
如果 dwThreadId 参数指定的线程之前报告了EXCEPTION_DEBUG_EVENT调试事件,则函数将停止所有异常处理并继续线程,并将异常标记为已处理。 对于任何其他调试事件,此标志只是继续线程。
DBG_EXCEPTION_NOT_HANDLED
0x80010001L
如果 dwThreadId 指定的线程以前报告了EXCEPTION_DEBUG_EVENT调试事件,则函数将继续处理异常。 如果这是首次出现异常事件,则使用结构化异常处理程序的搜索和调度逻辑;否则,进程将终止。 对于任何其他调试事件,此标志只是继续线程。
DBG_REPLY_LATER
0x40010001L
在 Windows 10 版本 1507 或更高版本中受支持,此标志会导致 dwThreadId 在目标继续后重播现有的中断事件。 通过对 dwThreadId 调用 SuspendThread API,调试器可以恢复进程中的其他线程,然后返回到中断状态。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 要获得更多的错误信息,请调用 GetLastError。

注解

只有使用 CreateProcess 函数创建 dwProcessId 的线程才能调用 ContinueDebugEvent

ContinueDebugEvent 函数成功后,指定的线程将继续执行。 根据线程之前报告的调试事件,会发生不同的操作。 如果继续线程以前报告了EXIT_THREAD_DEBUG_EVENT调试事件, ContinueDebugEvent 将关闭调试器对线程的句柄。 如果继续线程之前报告了EXIT_PROCESS_DEBUG_EVENT调试事件, ContinueDebugEvent 将关闭调试器对进程和线程的句柄。

示例

有关示例,请参阅 编写调试器的主循环

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 debugapi.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

CreateProcess

调试事件

调试函数