많은 디버거 명령에는 스레드 식별자가 매개 변수로 있습니다. 스레드 식별자 앞에 타일(~)이 나타납니다.
스레드 식별자는 다음 값 중 하나일 수 있습니다.
| 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 운영 체제에서 사용하는 스레드 ID와 다릅니다.
디버깅이 시작되면 현재 스레드는 현재 예외 또는 디버그 이벤트(또는 디버거가 프로세스에 연결된 경우 활성 스레드)를 발생시킨 스레드입니다. ~ s(현재 스레드 설정) 명령을 사용하거나 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.