WinDbg는 일반적으로 사용되는 명령 시리즈 --- 스레드 관련 작업 -

~ (스레드 상태)

물결표 (~) 명령은 지정된 스레드 또는 프로세스의 모든 스레드의 현재 상태.

~ 스레드

 매개 변수 :

    • 스레드
      지정된 스레드 표시 할 수 있습니다. 이 매개 변수를 생략하면, 모든 스레드가 표시됩니다.

환경 :

모드

만 사용자 모드

실시간 크래시 덤프

플랫폼

완전한

당신은 많은 명령을하기 전에 스레드 기호를 추가 할 수 있습니다. 다음의 예는이 명령을 사용하는 방법을 보여줍니다. 다음 명령은 모든 스레드의 상태를 표시합니다.
0 : 067> ~ 
   0 ID : 일시 2854.2fe8 1 TEB : 00dfc000 고정 된 
   1 개 ID : 일시 2854.24c8 1 TEB : 00dff000 고정 된 
   2 ID : 일시 2854.1fd4 1 TEB : 00c02000 고정 된 
   3 이드 : 일시 2854.1d60 1 TEB를 : 00c05000 고정 된 
   4 번호 : 일시 2854.5ac 1 TEB : 00c08000 고정 된를 
   5 ID : 2854.1504 일시 중단 1 TEB : 00c0e000 고정 된 
   6 ID : 2854.3200 일시 중단 1 TEB : 00c11000 고정 된 
   7 ID : 2854.290 일시 : 1 TEB : 00c14000 고정 된 
   8 이드 : 일시 중단 2854.2fbc : 1 TEB : 00c26000 고정 된을

 다음 명령은 모든 스레드를 표시합니다.

0 : 067> ~ * 
   0 ID : 일시 중단 2854.2fe8 : 1 TEB : 00dfc000 고정 된 
      시작! DIYHome WinMainCRTStartup (00a74f1b) 
      우선 순위 : 0 우선 순위 클래스 : 32 선호도 : FF 
   ID 1 : 일시 중단 2854.24c8 : 1 TEB : 00dff000 고정 된 
      시작 : 의 ntdll TppWorkerThread (77711440)! 
      우선 순위가 : 0 우선 순위 클래스 : 32 선호도 : FF 
   아이디 2 : 일시 중단 2854.1fd4 : 1 TEB : 00c02000 고정 된 
      시작!의 ntdll을 TppWorkerThread를 (77711440) 
      우선 순위 : 0 우선 순위 클래스 : 32 선호도 : FF 
   3 ID : 2854.1 D60 일시 : 1 TEB : 00c05000 고정 된 
      시작!의 ntdll을 TppWorkerThread를 (77711440) 
      우선 순위 : 0 우선 순위 클래스 : 32 선호도 : FF
   4 ID : 일시 중단 2854.5ac : 1 TEB : 00c08000 고정 된 
      시작! NTDLL을 TppWorkerThread를 (77711440) 
      우선 순위 : 0 우선 순위 클래스 : 32 선호도 : FF 
   2854.1504 일시 중단 : 1 TEB : 5 아이디 00c0e000 고정 된 
      시작! NTDLL TppWorkerThread (77711440) 
      우선 순위 : 0 우선 순위 클래스 : 32 선호도 : FF로 
   2854.3200 일시 중단 : 1 TEB : 00c11000 고정 된 6 이드가 
      시작! NTDLL TppWorkerThread (77711440) 
      우선 순위 : 0 우선 순위 클래스 : 32 선호도 : FF 
   7 ID : 2854.290 일시 중단 : 1 TEB : 00c14000 고정 된 
      시작 : combase CRpcThreadCache :: RpcWorkerThreadEntry (74592460)! 
      우선 순위 : 32 선호도 : FF 클래스 0 우선 순위 
   이드가 8 : 일시 중단 2854.2fbc : 1 TEB : 00c26000 고정 된 
      시작 nvoglv32를 DrvValidateVersion + 0x93e0 (690970c0)! 
      우선 순위 : 0 우선 순위 클래스 : 32 선호도 : FF를

당신은 디스플레이 자세한 내용을 볼 수 있습니다.

다음 명령은 현재 활성화 된 스레드를 표시합니다.

0 : 067> ~. 
. 67 ID : 2854.1958 일시 중단 : 0 TEB : 00cec000 고정 된 
      시작! msvcr120 _threadstartex (6330bfb4) 
      우선 순위 : 0 우선 순위 클래스 : 32 선호도 : FF

다음 명령은 예외를 발생 초기 스레드를 표시 (또는 프로세스에 부착되면 디버거 활성).

0 : 000> ~ # 
# 67 ID : 2854.1958 일시 중단 : 0 TEB : 00cec000 고정 된 
      시작! msvcr120 _threadstartex (6330bfb4) 
      우선 순위 : 0 우선 순위 클래스 : 32 선호도 : FF

다음 명령은 스레드 2의 수를 표시

0 : 000> ~ 2 
   2 ID : 일시 중단 2854.1fd4 : 1 TEB : 00c02000 고정 된 
      시작!의 ntdll TppWorkerThread (77711440) 
      우선 순위 : 0 우선 순위 클래스 : 32 선호도 : FF를
0 : 001> ~ 
   0 ID : 일시 중단 4dc.470 : 0 TEB 7ffde000 고정 된을 
. (1 개) ID는 : 일시 중단 4dc.534 : 0 TEB 7ffdd000 고정 된 
# 2 ID는 : 일시 중단 4dc.5a8 : 0 TEB 7ffdc000 고정 된을

출력의 첫 번째 행에서 0 소수점 스레드 4dc 진수 프로세스 ID의 개수가 고정 된 스레드 상태이다 0x7ffde000는 TEB 주소이고, 470은 헥스 스레드 ID된다. 스레드 1 (.) 이전 기간은 스레드가 현재 스레드임을 나타냄. 숫자 기호 (#) 전에 스레드 2은 스레드가 처음에 이상을 초래하거나, 공정에 연결된 디버거에서 활성 스레드 인 것을 나타낸다.

~ 전자 (스레드 특정 명령)

~ E 명령은 하나 개 이상의 특정 스레드에 대한 명령이나 대상 프로세스의 모든 스레드를 실행합니다. 전자 (입력 값) 명령의 혼란이 명령을 사용하지 마십시오.

~ 스레드 전자 및 CommandString

매개 변수 :

  • 스레드
    스레드 실행이 CommandString에 대한 지정된 디버거를.
  • CommandString이
    하나 개 이상의 명령을 지정하는 실행합니다. 여러 명령을 구분하려면 세미콜론을 사용해야합니다. CommandString이 입력 라인의 나머지를 포함한다. 문자 "E"를 다음의 모든 텍스트는 문자열의 일부로서 해석됩니다. 인용 부호 및 CommandString하지 마십시오.

환경 :

모드

만 사용자 모드

실시간 크래시 덤프

플랫폼

완전한

당신은 사용자 모드에서만 스레드를 지정할 수 있습니다. 커널 모드에서 물결표 (~)는 프로세서 나타냅니다. 언제 ~ E 명령은 스레드와 ~ E 명령은 타이핑을 유지합니다. 예를 들어, 다음 두 명령은 동일합니다.

0 : 000> ~ 2E R; 케이; KD 

0 : 000> ~ 2R; ~ 2K; ~ 2kd

 그러나 ~ E 규정은 반복적으로 사용 명령 또는 확장 명령 할 수있다. 이 방법으로 한정자를 사용하면 추가 입력을 제거 할 수 있습니다. 예를 들어, 다음 명령 반복 ! GLE 각 스레드에 대한 사용 GLE 확장 명령은 디버깅되는.

0 : 000> ~ * 전자 GLE! 

명령을 실행하는 동안 오류가 발생한 경우, 다음 명령을 계속합니다. 당신은 예선 실행 ~ 전자를 사용할 수 없습니다 (g, GH, GN, GN, 동구, P, PA, PC, t, TA, TB, TC, 중량). ~ E 한정자 J (이 실행되지 않은 경우) Z 또는 상태 커맨드를 병용 (실행 때에 실행) 할 수 없다. 여러 프로세스를 디버깅 할 경우, 비활성 프로세스의 가상 메모리 공간에 액세스 할 수 ~ 전자 명령을 사용할 수 없습니다.

 ~ F (고정 나사)

~ F 중지하고 해동 기다릴 주어진 스레드를 동결 명령. F이 명령을 사용하지 마십시오 명령 혼란 (메모리 입력).

~ 스레드 F 

매개 변수 :

  • 스레드는
    냉동 스레드를 지정합니다.

환경 :

모드

만 사용자 모드

실시간 크래시 덤프

플랫폼

완전한

당신은 사용자 모드에서만 스레드를 지정할 수 있습니다. 커널 모드에서 물결표 (~)는 프로세서 나타냅니다. ~ F 명령은 지정된 스레드 동결됩니다. 디버거가 가능하면 대상 응용 프로그램이 예상대로 다른 스레드가 수행 계속 실행 할 수 있으며,이 스레드는 정지 상태로 유지됩니다.
다음의 예는이 명령을 사용하는 방법을 보여줍니다. 다음 명령은 모든 스레드의 현재 상태를 표시합니다.

0 : 000> ~ * K

다음 명령 동결은 스레드의 현재 예외로했다.

0 : 000> ~ # f를

다음 명령은이 스레드의 상태가 일시 중단되었는지 여부를 확인합니다.

 0 : 000> ~ * K

 ~ U (나사 고정 취소)

 ~ U 지정된 스레드를 고정 취소 명령.

~ N (스레드를 일시 중단)

~ 지정된 스레드의 실행을 머물 N 순서. 명령 당 N ~ 시간이 스레드는 하나 카운트 증가를 일시 중지합니다. 이 명령 스레드의 시작 주소를 사용합니다.

~ m (재실행 나사)

~ M 명령은 지정된 스레드를 수행하고 있습니다. ~ M은 각각의 사용을 명령 스레드는 카운트가 1 씩 감소 일시 중지합니다.

~의 (현재 스레드를 설정)

~의 명령 세트 또는은 현재 스레드 번호. 사용자 모드에서, ~의 현재 스레드가 제공된다. 로이 명령을 사용하지 마십시오 ~의 (현재 프로세서 변경) (만 커널 모드에서 작동) 명령을 | S (설정 현재 프로세스) 명령, || S (설정 현재 시스템) 명령 또는 S (메모리 검색) 명령 혼란을.

~ 스레드의 
~의

매개 변수 :

  • 스레드
    설정 또는 스레드의 표시하도록 지정.
당신은 사용자 모드에서만 스레드를 지정할 수 있습니다. 커널 모드에서 물결표 (~)는 프로세서 나타냅니다. 당신은 ~의 구문을 사용하는 경우, 디버거가 현재의 thread에 대한 정보를 표시합니다. 이 명령은 현재 명령 현재의 시스템, 프로세스 및 스레드도 분해.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

추천

출처www.cnblogs.com/yilang/p/11445709.html