디버거 명령 사용
디버거 명령의 사용에 대해 설명합니다. WinDbg는 크래시 덤프를 분석하고, 라이브 사용자 모드 및 커널 모드 코드를 디버그하고, CPU 레지스터 및 메모리를 검사하는 데 사용할 수 있는 디버거입니다. 자세한 내용은 WinDbg 개요를 참조 하세요.
디버거를 설치하려면 Windows 디버거 설치를 참조하세요.
WinDbg를 시작하려면 Windows 디버깅 시작을 참조 하세요.
WinDbg 디버거 명령 창
WinDbg의 경우 "디버거 명령 창"은 제목 표시줄에 "명령"이라는 레이블이 지정된 창을 나타냅니다. 이 창에는 다음 두 개의 창이 있습니다.
작은 아래쪽 창에서 명령을 입력합니다.
큰 위쪽 창에서 명령 출력을 볼 수 있습니다.
이 창은 항상 디버깅 세션의 시작 부분에 열립니다. 보기 메뉴에서 명령을 선택하거나 Alt+1을 누르거나 명령(Alt+1) 단추(
위쪽 화살표 키와 아래쪽 화살표 키를 사용하여 명령 기록을 스크롤할 수 있습니다. 이전 명령이 나타나면 편집한 다음 Enter 키를 눌러 이전 명령(또는 이전 명령의 편집된 버전)을 실행할 수 있습니다. 이 프로시저가 제대로 작동하려면 커서가 줄 끝에 있을 필요가 없습니다.
KD 또는 CDB
KD 또는 CDB의 경우 "디버거 명령 창"은 전체 창을 나타냅니다. 창 아래쪽의 프롬프트에 명령을 입력합니다. 명령에 출력이 있으면 창에 출력이 표시되고 프롬프트가 다시 표시됩니다.
디버거 명령 창 프롬프트
사용자 모드 디버깅을 수행하는 경우 디버거 명령 창의 프롬프트는 다음 예제와 같습니다.
2:005>
앞의 예제에서 2는 현재 프로세스 번호이고 005는 현재 스레드 번호입니다.
디버거를 둘 이상의 컴퓨터에 연결하는 경우 다음 예제와 같이 시스템 번호가 프로세스 및 스레드 번호 앞에 포함됩니다.
3:2:005>
이 예제에서 3은 현재 시스템 번호이고, 2는 현재 프로세스 번호이고, 005는 현재 스레드 번호입니다.
프로세서가 하나만 있는 대상 컴퓨터에서 커널 모드 디버깅을 수행하는 경우 프롬프트는 다음 예제와 같습니다.
kd>
그러나 대상 컴퓨터에 여러 프로세서가 있는 경우 다음 예제와 같이 프롬프트 앞에 현재 프로세서 수가 표시됩니다.
0: kd>
디버거가 이전에 실행한 명령을 처리 중인 경우 명령 버퍼에 추가할 수 있지만 새 명령은 일시적으로 처리되지 않습니다. 또한 KD 및 CDB에서 제어 키를 계속 사용할 수 있으며 WinDbg에서 메뉴 명령 및 바로 가기 키를 계속 사용할 수 있습니다. KD 또는 CDB가 이 사용 중 상태이면 프롬프트가 표시되지 않습니다. WinDbg가 이 사용 중 상태이면 프롬프트 대신 다음 표시기가 표시됩니다.
*BUSY*
.pcmd(프롬프트 명령 설정) 명령을 사용하여 이 프롬프트에 텍스트를 추가할 수 있습니다.
명령 종류
WinDbg, KD 및 CDB는 다양한 명령을 지원합니다. 일부 명령은 디버거 간에 공유되며 일부는 디버거 중 하나 또는 두 개에서만 사용할 수 있습니다.
일부 명령은 라이브 디버깅에서만 사용할 수 있으며 다른 명령은 덤프 파일을 디버그할 때만 사용할 수 있습니다.
일부 명령은 사용자 모드 디버깅 중에만 사용할 수 있으며, 다른 명령은 커널 모드 디버깅 중에만 사용할 수 있습니다.
일부 명령은 대상이 특정 프로세서에서 실행되는 경우에만 사용할 수 있습니다. 모든 명령 및 해당 제한 사항에 대한 자세한 내용은 디버거 명령을 참조 하세요.
명령 편집, 반복 및 취소
명령을 입력할 때 표준 편집 키를 사용할 수 있습니다.
위쪽 화살표 키와 아래쪽 화살표 키를 사용하여 이전 명령을 찾습니다.
백스페이스, DELETE, INSERT 및 왼쪽 화살표 키와 오른쪽 화살표 키를 사용하여 현재 명령을 편집합니다.
ESC 키를 눌러 현재 줄을 지웁니다.
TAB 키를 눌러 텍스트 항목을 자동으로 완료할 수 있습니다. 디버거에서 하나 이상의 문자를 입력한 후 TAB 키를 눌러 명령을 자동으로 완료합니다. TAB 키를 반복해서 눌러 텍스트 완성 옵션을 순환하고 Shift 키를 누른 채 Tab 키를 눌러 뒤로 순환합니다. 텍스트에서 와일드카드 문자를 사용하고 Tab 키를 눌러 전체 텍스트 완성 옵션 집합으로 확장할 수도 있습니다. 예를 들어 fo*!ba를 입력한 다음 TAB 키를 누르면 디버거가 "fo"로 시작하는 모듈 이름을 가진 모든 모듈에서 "ba"로 시작하는 모든 기호 집합으로 확장됩니다. 또 다른 예로 !*prcb를 입력 한 다음 Tab 키를 눌러 "prcb "가 있는 모든 확장 명령을 완료할 수 있습니다.
TAB 키를 사용하여 텍스트 완성을 수행하는 경우 텍스트 조각이 마침표(.)로 시작하는 경우 텍스트가 점 명령과 일치합니다. 텍스트 조각이 느낌표(!)로 시작하는 경우 텍스트는 확장 명령과 일치합니다. 그렇지 않으면 텍스트가 기호와 일치합니다. TAB 키를 사용하여 기호를 입력하면 TAB 키를 누르면 코드가 완료되고 기호와 모듈 이름이 입력됩니다. 모듈 이름이 표시되지 않으면 로컬 기호 및 모듈 이름이 완료됩니다. 모듈 또는 모듈 패턴이 지정된 경우 기호 완성은 모든 일치 항목의 코드 및 형식 기호를 완료합니다.
디버거 명령 창에서 선택하거나 마우스 오른쪽 단추로 클릭하여 입력할 명령에 클립보드의 내용을 자동으로 붙여넣을 수 있습니다.
최대 명령 길이는 4096자입니다. 그러나 커널 디버거에서 사용자 모드 디버거를 제어하는 경우 최대 줄 길이는 512자입니다.
CDB 및 KD에서 ENTER 키를 단독으로 눌러 이전 명령을 반복합니다. WinDbg에서 이 동작을 사용하거나 사용하지 않도록 설정할 수 있습니다. 이 동작에 대한 자세한 내용은 ENTER(마지막 명령 반복)를 참조하세요.
마지막으로 실행한 명령이 긴 디스플레이를 표시하고 차단하려는 경우 CDB 또는 KD에서 Ctrl+C 키를 사용합니다. WinDbg에서 디버그 사용 | Ctrl+Break를 누르거나 끊 습니다.
커널 모드 디버깅에서는 Ctrl+C를 눌러 대상 컴퓨터의 키보드에서 명령을 취소할 수 있습니다.
.cls(화면 지우기) 명령을 사용하여 디버거 명령 창에서 모든 텍스트를 지울 수 있습니다. 이 명령은 전체 명령 기록을 지웁니다. WinDbg에서 편집 | 을 사용하여 명령 기록을 지울 수 있습니다. 명령 출력 지우기 명령 또는 디버거 명령 창의 바로 가기 메뉴에서 명령 출력 지우기를 선택합니다.
식 구문
많은 명령 및 확장 명령은 식을 인수로 허용 합니다 . 디버거는 명령을 실행하기 전에 이러한 식을 평가합니다. 식에 대한 자세한 내용은 식 평가를 참조 하세요.
별칭
별칭은 복잡한 구를 다시 입력할 필요가 없도록 하는 데 사용할 수 있는 텍스트 매크로입니다. 별칭에는 두 가지 종류가 있습니다. 별칭에 대한 자세한 내용은 별칭 사용을 참조 하세요.
자체 반복 명령
다음 명령을 사용하여 작업을 반복하거나 조건부로 다른 명령을 실행할 수 있습니다.
j(If-Else 실행) 조건부 명령
z(Execute While) 조건부 명령
~e(스레드별 명령) 명령 한정자
!list 확장 명령
각 명령에 대한 자세한 내용은 개별 명령 항목을 참조하세요.
스크롤 제어
스크롤 막대를 사용하여 이전 명령과 해당 출력을 볼 수 있습니다.
CDB 또는 KD를 사용하는 경우 키보드 항목이 자동으로 디버거 명령 창 아래로 다시 아래쪽으로 스크롤됩니다.
WinDbg에서는 명령이 출력을 생성하거나 Enter 키를 누를 때마다 디스플레이가 자동으로 아래쪽으로 스크롤됩니다. 이 자동 스크롤을 사용하지 않도록 설정하려면 보기 메뉴에서 옵션을 선택한 다음 자동으로 스크롤 확인란의 선택을 취소합니다.
WinDbg 텍스트 기능
WinDbg에서는 몇 가지 추가 기능을 사용하여 디버거 명령 창에 텍스트가 표시되는 방식을 변경할 수 있습니다. WinDbg 창에서 이러한 기능 중 일부에 액세스할 수 있으며, 일부는 디버거 명령 창의 바로 가기 메뉴에서, 일부는 적절한 메뉴 아이콘을 선택하여 액세스할 수 있습니다.
바로 가기 메뉴의 Word 줄 바꿈 명령은 단어 줄 바꿈 상태를 켜고 끕니다. 이 명령은 이 상태가 변경된 후 사용하는 명령뿐만 아니라 전체 창에 영향을 줍니다. 많은 명령과 확장은 서식이 지정된 디스플레이를 생성하므로 일반적으로 단어 줄 바꿈은 권장하지 않습니다.
편집 | 명령 출력 메뉴 명령에 추가하면 디버거 명령 창에 주석이 추가됩니다. 바로 가기 메뉴의 명령 출력 에 추가 명령은 동일한 효과가 있습니다.
디버거 명령 창의 텍스트 및 배경에 사용되는 색을 사용자 지정할 수 있습니다. 다양한 종류의 텍스트에 대해 다른 색을 지정할 수 있습니다. 예를 들어 자동 레지스터 출력을 한 색으로 표시하고, 오류 메시지를 다른 색으로 표시하고 , DbgPrint 메시지를 세 번째 색으로 표시할 수 있습니다.
글꼴 사용자 지정 및 특수 편집 명령 사용과 같이 WinDbg의 디버깅 정보 창에 공통된 모든 기능을 사용할 수 있습니다.
Remote Debugging
디버거를 통해 원격 디버깅을 수행하는 경우 디버깅 클라이언트는 제한된 수의 명령에 액세스할 수 있습니다. 클라이언트에서 액세스할 수 있는 명령 수를 변경하려면 -clines 명령줄 옵션 또는 _NT_DEBUG_HISTORY_SIZE 환경 변수를 사용합니다.