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 部分中的控制线程和进程