线程语法
许多调试器命令将线程标识符作为其参数。 线程标识符前面会显示一个波形符 ( ~ ) 。
线程标识符可以是以下值之一。
线程标识符 | 说明 |
---|---|
~. |
当前线程。 |
~# |
导致当前异常或调试事件的线程。 |
~* |
进程中的所有线程。 |
~数量 |
索引为 Number 的线程。 |
~~[TID] |
线程 ID 为 TID 的线程。 (括号是必需的,不能在第二个波形符和左方括号之间添加空格。) |
~[Expression] |
线程 ID 是数值表达式解析到的整数的 线程 。 |
线程在创建时分配索引。 请注意,此数字不同于 Microsoft Windows 操作系统使用的线程 ID。
调试开始时,当前线程是导致当前异常或调试事件 (线程或当调试器附加到进程) 的活动线程。 在使用 ~s (设置 当前线程) 命令或使用 WinDbg 中的“ 进程和线程”窗口 指定新线程之前,该线程将一直保留为当前线程。
线程标识符通常显示为命令前缀。 请注意,并非所有通配符都可用于使用线程标识符的所有命令。
~[Expression] 语法的一个示例是 ~[@$t0]
。 在此示例中,线程根据用户定义的伪寄存器的值而更改。 此语法允许调试器脚本以编程方式选择线程。
在内核模式下控制线程
在内核模式下,无法使用线程标识符控制线程。 有关如何在内核模式下访问特定于线程的信息的详细信息,请参阅 更改上下文。
注意 可以在用户模式调试期间使用波形符 ( ~ ) 来指定线程。 在内核模式调试中,可以使用波形符指定处理器。 有关如何指定处理器的详细信息,请参阅 多处理器语法。