WdbgExts 线程和进程

本主题简要概述了如何使用 WdbgExts API 操作线程和进程。 有关调试器引擎中的线程和进程的概述,请参阅本文档的“调试器引擎概述”部分中的“线程和进程”。

线程

若要获取描述当前线程的线程环境块(TEB)的地址,请使用 GetTebAddress 方法。 在内核模式调试中,KTHREAD 结构也可用于描述线程。 GetCurrentThreadAddr 返回此结构(在用户模式调试中,GetCurrentThreadAddr 返回 TEB 的地址)。

线程上下文是在切换线程时由 Windows 保留的状态;它由 CONTEXT 结构表示。 此结构因作系统和平台而异,在使用 CONTEXT 结构时应小心谨慎。 线程上下文由 GetContext 函数返回,可以使用 SetContext 函数进行设置。

若要检查当前线程的堆栈跟踪,请使用 StackTrace 函数。 若要暂时更改用于检查堆栈跟踪的线程,请使用 SetThreadForOperationSetThreadForOperation64 函数。 有关检查堆栈的其他方法,请参阅本文档的“使用调试器引擎 API”部分中的“检查堆栈跟踪”。

若要获取有关目标中的操作系统线程的信息,请使用 Ioctl 操作 IG_GET_THREAD_OS_INFO

过程

若要获取描述当前进程的进程环境块(PEB)的地址,请使用 GetPebAddress 方法。 在内核模式调试中,KPROCESS 结构也可用于描述进程。 GetCurrentProcessAddr 返回此结构(在用户模式调试中,GetCurrentProcessAddr 返回 PEB 的地址)。

GetCurrentProcessHandle 方法返回当前进程的系统句柄。

其他信息

有关更强大的线程操作和进程操作 API,请参阅本文档的“使用调试器引擎 API”部分中的“控制线程和进程”。