Поделиться через


Thread Syntax

Многие команды отладчика имеют идентификаторы потоков в качестве параметров. Тильда (~) отображается перед идентификатором потока.

Идентификатор потока может быть одним из следующих значений.

Thread identifier Description

~.

Текущий поток.

~#

Поток, вызвавшего текущее исключение или событие отладки.

~*

Все потоки в процессе.

~ Number

The thread whose index is Number.

~~[TID]

The thread whose thread ID is TID. (Квадратные скобки обязательны, и нельзя добавить пробел между вторым тильдой и открывающей скобкой.)

~[Expression]

The thread whose thread ID is the integer to which the numerical Expression resolves.

Потоки назначаются индексами по мере их создания. Обратите внимание, что это число отличается от идентификатора потока, используемого операционной системой Microsoft Windows.

При начале отладки текущий поток является тем, который вызвал текущее исключение или событие отладки (или активный поток при подключении отладчика к процессу). Этот поток остается текущим потоком, пока не укажите новый, используя команду ~s (Set Current Thread) или используя окно "Процессы и потоки " в WinDbg.

Идентификаторы потоков обычно отображаются в виде префиксов команд. Обратите внимание, что не все подстановочные знаки доступны во всех командах, использующих идентификаторы потока.

An example of the ~[Expression] syntax would be ~[@$t0]. В этом примере поток изменяется в зависимости от значения определяемого пользователем псевдорегистрирующего регистра. Этот синтаксис позволяет скриптам отладчика программно выбирать поток.

Управление потоками в режиме ядра

В режиме ядра потоки нельзя управлять с помощью идентификаторов потоков. For more information about how to access thread-specific information in kernel mode, see Changing Contexts.

Note You can use the tilde character ( ~ ) to specify threads during user-mode debugging. В отладке в режиме ядра можно использовать тильду для указания процессоров. For more information about how to specify processors, see Multiprocessor Syntax.