WinDbg 명령줄 옵션
WinDbg의 처음 사용자는 WinDbg(클래식) 섹션을 사용하여 디버깅을 시작해야 합니다.
WinDbg 명령줄은 다음 구문을 사용합니다.
windbg [ -server ServerTransport | -remote ClientTransport ] [-lsrcpath ]
[ -premote SmartClientTransport ] [-?] [-ee {masm|c++}]
[-clines lines] [-b] [-d] [-aExtension]
[-failinc] [-g] [-G] [-hd] [-j] [-n] [-noshell] [-o] [-openPrivateDumpByHandle Handle]
[-Q | -QY] [-QS | -QSY] [-robp] [-secure] [-ses] [-sdce]
[-sicv] [-sins] [-snc] [-snul] [-sup] [-sflags 0xNumber]
[-T Title] [-v] [-log{o|a} LogFile] [-noinh]
[-i ImagePath] [-y SymbolPath] [-srcpath SourcePath]
[-k [ConnectType] | -kl | -kx ExdiOptions] [-c "command"]
[-pb] [-pd] [-pe] [-pr] [-pt Seconds] [-pv]
[-W Workspace] [-WF Filename] [-WX] [-zp PageFile]
[ -p PID | -pn Name | -psn ServiceName | -z DumpFile | executable ]
windbg -I[S]
windbg -IU KeyString
windbg -IA[S]
WinDbg 명령줄 옵션에 대한 설명은 다음과 같습니다. -j를 제외한 모든 명령줄 옵션은 대/소문자를 구분합니다. 초기 하이픈은 슬래시(/)로 바꿀 수 있습니다.
-remote 또는 -server 옵션을 사용하는 경우 명령줄의 다른 옵션 앞에 나타나야 합니다. 실행 파일을 지정한 경우 명령줄에 마지막으로 나타나야 합니다. 실행 파일 이름 뒤의 모든 텍스트는 실행 프로그램에 고유한 명령줄 매개 변수로 전달됩니다.
매개 변수
-서버 ServerTransport
다른 디버거에서 액세스할 수 있는 디버깅 서버를 만듭니다. 가능한 ServerTransport 값에 대한 설명은 디버깅 서버 활성화를 참조하세요. 이 매개 변수를 사용하는 경우 명령줄의 첫 번째 매개 변수여야 합니다.
-먼 ClientTransport
디버깅 클라이언트를 만들고 이미 실행 중인 디버깅 서버에 연결합니다. 가능한 ClientTransport 값에 대한 설명은 디버깅 클라이언트 활성화를 참조하세요. 이 매개 변수를 사용하는 경우 명령줄의 첫 번째 매개 변수여야 합니다.
-premote SmartClientTransport
스마트 클라이언트를 만들고 이미 실행 중인 프로세스 서버에 연결합니다. 가능한 SmartClientTransport 값에 대한 설명은 스마트 클라이언트 활성화를 참조하세요.
-a 확장
기본 확장 DLL을 설정합니다. 기본값은 kdextx86.dll 또는 kdexts.dll. "a" 뒤의 공백이 없어야 하며 .dll 파일 이름 확장명을 포함해서는 안 됩니다. 자세한 내용 및 이 기본값을 설정하는 다른 방법은 디버거 확장 DLL 로드를 참조 하세요.
-b
이 옵션은 더 이상 지원되지 않습니다.
-c " command "
시작 시 실행할 초기 디버거 명령을 지정합니다. 이 명령은 따옴표로 묶어야 합니다. 여러 명령을 세미콜론으로 구분할 수 있습니다. (긴 명령 목록이 있는 경우 스크립트에 추가한 다음 $, $, $,><>< $<><$ (스크립트 파일 실행) 명령과 함께 -c 옵션을 사용하는 것이 더 쉬울 수 있습니다.)
디버깅 클라이언트를 시작하는 경우 이 명령은 디버깅 서버용이어야 합니다. .lsrcpath와 같은 클라이언트별 명령은 허용되지 않습니다.
-clines 라인
원격 디버깅 중에 액세스할 수 있는 명령 기록의 대략적인 명령 수를 설정합니다. 자세한 내용 및 이 숫자를 변경하는 다른 방법은 디버거 명령 사용을 참조 하세요.
-d
(커널 모드에만 해당) 다시 부팅한 후 커널 모듈이 로드되는 즉시 디버거가 대상 컴퓨터에 침입합니다. (이 중단은 -b 옵션의 중단보다 이전입니다.) 자세한 내용 및 이 상태를 변경하는 다른 방법은 대상 컴퓨터 충돌 및 다시 부팅을 참조하세요.
-ee {masm|c++}
기본 식 계산기를 설정합니다. masm을 지정하면 MASM 식 구문이 사용됩니다. c++를 지정하면 C++ 식 구문이 사용됩니다. -ee 옵션을 생략하면 MASM 식 구문이 기본값으로 사용됩니다. 자세한 내용은 식 평가를 참조하세요.
-failinc
디버거가 의심스러운 기호를 무시하도록 합니다. 사용자 모드 또는 커널 모드 미니덤프 파일을 디버깅할 때 이 옵션은 디버거가 이미지를 매핑할 수 없는 모듈을 로드하지 못하게 합니다. 자세한 내용 및 이를 제어하는 다른 방법은 SYMOPT_EXACT_SYMBOLS 참조하세요.
-g
(사용자 모드에만 해당) 대상 애플리케이션의 초기 중단점을 무시합니다. 이 옵션을 사용하면 다른 중단점이 설정되지 않은 한 대상 애플리케이션이 시작된 후에도 계속 실행되거나 WinDbg가 연결됩니다. 자세한 내용은 초기 중단점을 참조하세요.
-G
(사용자 모드에만 해당) 프로세스 종료 시 최종 중단점을 무시합니다. 일반적으로 디버깅 세션은 이미지 런다운 프로세스 중에 종료됩니다. 이 옵션을 사용하면 자식이 종료될 때 디버깅 세션이 즉시 종료됩니다. 이는 sxd epr 명령을 입력하는 것과 동일한 효과가 있습니다. 자세한 내용은 예외 및 이벤트 제어를 참조 하세요.
-hd
(사용자 모드에만 해당) 디버그 힙을 사용하지 않도록 지정합니다.
-I[S]
WinDbg를 사후 관리 디버거로 설치합니다. 자세한 내용은 사후 관리 디버깅 사용을 참조 하세요.
이 작업을 시도하면 성공 또는 실패 메시지가 표시됩니다. S가 포함된 경우 이 절차는 성공하면 자동으로 수행되며 실패 메시지만 표시됩니다.
-I 매개 변수는 다른 매개 변수와 함께 사용하면 안 됩니다. WinDbg 창이 잠시 나타날 수 있지만 이 명령은 실제로 WinDbg를 시작하지 않습니다.
-IA[S]
WinDbg를 레지스트리의 파일 확장명 .dmp, .mdmp 및 .wew와 연결합니다. 이 작업을 시도하면 성공 또는 실패 메시지가 표시됩니다. S가 포함된 경우 이 절차는 성공하면 자동으로 수행되며 실패 메시지만 표시됩니다. 이 연결이 만들어지면 이러한 확장명 중 하나가 있는 파일을 선택 및 유지(또는 마우스 오른쪽 단추로 클릭)하면 WinDbg가 시작됩니다.
-IA 매개 변수는 다른 매개 변수와 함께 사용하면 안 됩니다. WinDbg 창이 잠시 나타날 수 있지만 이 명령은 실제로 WinDbg를 시작하지 않습니다.
-IU KeyString
사용자가 URL을 사용하여 디버거 원격 클라이언트를 자동으로 시작할 수 있도록 디버거 원격을 URL 유형으로 등록합니다. KeyString 의 형식 remdbgeng://RemotingOption
은 다음과 같습니다. RemotingOption은 디버깅 클라이언트 활성화 항목에 정의된 대로 전송 프로토콜을 정의하는 문자열입니다. 이 작업이 성공하면 메시지가 표시되지 않습니다. 실패하면 오류 메시지가 표시됩니다.
-IU 매개 변수는 다른 매개 변수와 함께 사용하면 안 됩니다. WinDbg 창이 잠시 나타날 수 있지만 이 명령은 실제로 WinDbg를 시작하지 않습니다.
-나는 ImagePath
오류를 생성한 실행 파일의 위치를 지정합니다. 경로에 공백이 포함된 경우 따옴표로 묶어야 합니다.
-j
저널링을 허용합니다.
-k [ConnectType]
(커널 모드에만 해당) 커널 디버깅 세션을 시작합니다. 자세한 내용은 WinDbg(클래식)를 사용하여 라이브 커널 모드 디버깅을 참조하세요. 다음 ConnectType 옵션 없이 -k를 사용하는 경우 명령줄의 최종 항목이어야 합니다.
-Kl 기
(커널 모드에만 해당) 디버거와 동일한 컴퓨터에서 커널 디버깅 세션을 시작합니다.
-kx ExdiOptions
(커널 모드에만 해당) EXDI 드라이버를 사용하여 커널 디버깅 세션을 시작합니다. EXDI에 대한 자세한 내용은 EXDI 디버거 전송 구성을 참조 하세요.
-log{o|a} LogFile
로그 파일에 대한 정보 로깅을 시작합니다. 지정된 로그 파일이 이미 있는 경우 -logo를 사용하는 경우 덮어씁니다. loga를 사용하는 경우 출력이 파일에 추가됩니다. 자세한 내용은 WinDbg에서 로그 파일 유지를 참조 하세요.
-lsrcpath
원격 클라이언트의 로컬 원본 경로를 설정합니다. 이 옵션은 명령줄에서 -remote을 따라야 합니다.
-n
노이즈 기호 로드: 기호 처리기에서 자세한 출력을 사용하도록 설정합니다. 자세한 내용 및 이를 제어하는 다른 방법은 SYMOPT_DEBUG 참조하세요.
-noinh
(사용자 모드에만 해당) 디버거에서 만든 프로세스가 디버거에서 핸들을 상속하지 못하도록 합니다. 이를 제어하는 다른 방법은 WinDbg를 사용하여 사용자 모드 프로세스 디버깅을 참조 하세요.
-noprio
우선 순위 변경을 방지합니다. 이 매개 변수는 WinDbg가 활성 상태인 동안 CPU 시간에 우선 순위를 두지 않도록 방지합니다.
-noshell
모든 .shell 명령을 금지합니다. 이 금지는 새 디버깅 세션이 시작되더라도 디버거가 실행되는 한 지속됩니다. 자세한 내용 및 셸 명령을 사용하지 않도록 설정하는 다른 방법은 셸 명령 사용을 참조 하세요.
-o
(사용자 모드에만 해당) 대상 애플리케이션에서 시작한 모든 프로세스(자식 프로세스)를 디버그합니다. 기본적으로 디버깅 중인 프로세스에서 만든 프로세스는 정상적으로 실행됩니다.
-openPrivateDumpByHandle 핸들
디버그할 크래시 덤프 파일의 핸들을 지정합니다.
-p PID
디버그할 10진수 프로세스 ID를 지정합니다. 이미 실행 중인 프로세스를 디버그하는 데 사용됩니다.
-pb
(사용자 모드에만 해당) 대상 프로세스에 연결할 때 디버거가 초기 침입을 요청하는 것을 방지합니다. 애플리케이션이 이미 일시 중단되었거나 대상에 중단 스레드를 만들지 않으려는 경우에 유용할 수 있습니다.
-pd
(사용자 모드에만 해당) 디버깅 세션이 끝날 때 대상 애플리케이션이 종료되지 않도록 합니다. 자세한 내용은 WinDbg(클래식)에서 디버깅 세션 종료를 참조하세요.
-pe
(사용자 모드에만 해당) 대상 애플리케이션이 이미 디버그 중임을 나타냅니다. 자세한 내용은 대상 애플리케이션에 다시 연결하는 방법을 참조하세요.
-pn 이름
디버그할 프로세스의 이름을 지정합니다. (이 이름은 고유해야 합니다.) 이미 실행 중인 프로세스를 디버그하는 데 사용됩니다.
-홍보
(사용자 모드에만 해당) 디버거가 대상 프로세스에 연결할 때 실행되도록 합니다. 애플리케이션이 이미 일시 중단되어 실행을 다시 시작하려는 경우에 유용할 수 있습니다.
-psn ServiceName
디버그할 프로세스에 포함된 서비스의 이름을 지정합니다. 이미 실행 중인 프로세스를 디버그하는 데 사용됩니다.
-pt 초
중단 시간 제한(초)을 지정합니다. 기본값은 30입니다. 자세한 내용은 대상 제어를 참조하세요.
-태양광 발전
(사용자 모드에만 해당) 디버거가 대상 프로세스에 비침범적으로 연결되도록 지정합니다. 자세한 내용은 비침범성 디버깅(사용자 모드)을 참조하세요.
-Q
"작업 영역 저장?" 대화 상자를 표시하지 않습니다. 작업 영역은 자동으로 저장되지 않습니다. 자세한 내용은 작업 영역 사용 - WinDbg(클래식)를 참조하세요.
-QS
"원본 다시 로드?" 대화 상자를 표시하지 않습니다. 원본 파일은 자동으로 다시 로드되지 않습니다.
-QSY
"원본 다시 로드?" 대화 상자를 표시하지 않으며 원본 파일을 자동으로 다시 로드합니다.
-QY
"작업 영역 저장?" 대화 상자를 표시하지 않으며 작업 영역을 자동으로 저장합니다. 자세한 내용은 작업 영역 사용 - WinDbg(클래식)를 참조하세요.
-robp
이렇게 하면 CDB가 읽기 전용 메모리 페이지에서 중단점을 설정할 수 있습니다. (기본값은 이러한 작업이 실패하는 것입니다.)
-sdce
기호를 로드하는 동안 디버거가 파일 액세스 오류 메시지를 표시하도록 합니다. 자세한 내용 및 이를 제어하는 다른 방법은 SYMOPT_FAIL_CRITICAL_ERRORS 참조하세요.
-확실한
보안 모드를 활성화합니다.
-ses
디버거가 모든 기호 파일에 대해 엄격한 평가를 수행하고 의심스러운 기호를 무시하도록 합니다. 자세한 내용 및 이를 제어하는 다른 방법은 SYMOPT_EXACT_SYMBOLS 참조하세요.
-sflags 0x 수
모든 기호 처리기 옵션을 한 번에 설정합니다. 숫자는 0x 접두사인 16진수여야 합니다. 즉, 0x가 없는 10진수는 허용되지만 기호 옵션은 이진 플래그이므로 16진수가 권장됩니다. 이 옵션은 모든 기호 처리기 기본값을 재정의하므로 주의하여 사용해야 합니다. 자세한 내용은 기호 옵션 설정을 참조 하세요.
-sicv
기호 처리기가 CV 레코드를 무시하도록 합니다. 자세한 내용 및 이를 제어하는 다른 방법은 SYMOPT_IGNORE_CVREC 참조하세요.
-죄
디버거가 기호 경로 및 실행 가능한 이미지 경로 환경 변수를 무시하도록 합니다. 자세한 내용은 SYMOPT_IGNORE_NT_SYMPATH 참조하세요.
-snc
디버거가 C++ 변환을 해제하도록 합니다. 자세한 내용 및 이를 제어하는 다른 방법은 SYMOPT_NO_CPP 참조하세요.
-snul
정규화되지 않은 이름에 대해 자동 기호 로드를 사용하지 않도록 설정합니다. 자세한 내용 및 이를 제어하는 다른 방법은 SYMOPT_NO_UNQUALIFIED_LOADS 참조하세요.
-srcpath SourcePath
원본 파일 검색 경로를 지정합니다. 여러 경로를 세미콜론(;)으로 구분합니다. 경로에 공백이 포함된 경우 따옴표로 묶어야 합니다. 자세한 내용 및 이 경로를 변경하는 다른 방법은 원본 경로를 참조 하세요.
-sup
기호 처리기가 모든 기호 검색 중에 공용 기호 테이블을 검색하도록 합니다. 자세한 내용 및 이를 제어하는 다른 방법은 SYMOPT_AUTO_PUBLICS 참조하세요.
-T 타이틀
WinDbg 창 제목을 설정합니다.
-v
디버거에서 자세한 출력을 사용하도록 설정합니다.
-W 작업
지정된 명명된 작업 영역을 로드합니다. 작업 영역 이름에 공백이 포함되어 있으면 따옴표로 묶습니다. 이 이름의 작업 영역이 없으면 이 이름으로 새 작업 영역을 만들거나 로드 시도를 중단하는 옵션이 제공됩니다. 자세한 내용은 작업 영역 사용 - WinDbg(클래식)를 참조하세요.
-WF 파일
지정된 파일에서 작업 영역을 로드합니다. 파일 이름 에는 파일과 확장명(일반적으로 .wew)이 포함되어야 합니다. 작업 영역 이름에 공백이 포함되어 있으면 따옴표로 묶습니다. 이 이름을 가진 작업 영역 파일이 없는 경우 이 이름으로 새 작업 영역 파일을 만들거나 로드 시도를 중단하는 옵션이 제공됩니다. 자세한 내용은 작업 영역 사용 - WinDbg(클래식)를 참조하세요.
-WX
자동 작업 영역 로드를 사용하지 않도록 설정합니다. 자세한 내용은 작업 영역 사용 - WinDbg(클래식)를 참조하세요.
-y SymbolPath
기호 검색 경로를 지정합니다. 여러 경로를 세미콜론(;)으로 구분합니다. 경로에 공백이 포함된 경우 따옴표로 묶어야 합니다. 자세한 내용 및 이 경로를 변경하는 다른 방법은 기호 경로를 참조 하세요.
-z DumpFile
디버그할 크래시 덤프 파일의 이름을 지정합니다. 경로와 파일 이름에 공백이 포함된 경우 따옴표로 묶어야 합니다. 여러 -z 옵션, 각각 다른 DumpFile 값을 포함하여 여러 덤프 파일을 한 번에 열 수 있습니다. 자세한 내용은 사용자 모드 덤프 파일 분석 또는 WinDbg를 사용하여 커널 모드 덤프 파일 분석을 참조하세요.
-zp PageFile
수정된 페이지 파일의 이름을 지정합니다. 덤프 파일을 디버깅하고 .pagein(메모리 내 페이지) 명령을 사용하려는 경우에 유용합니다. 표준 Windows 페이지 파일에서 -zp를 사용할 수 없습니다. 특별히 수정된 페이지 파일만 사용할 수 있습니다.
실행
실행 프로세스의 명령줄을 지정합니다. 새 프로세스를 시작하고 디버그하는 데 사용됩니다. 명령줄의 마지막 항목이어야 합니다. 실행 파일 이름 뒤의 모든 텍스트는 해당 인수 문자열로 실행 파일에 전달됩니다. 자세한 내용은 WinDbg를 사용하여 사용자 모드 프로세스 디버깅을 참조 하세요.
-?
이 HTML 도움말 창을 표시합니다.
명령줄에서 디버거를 실행하는 경우 애플리케이션의 파일 이름 뒤의 대상 애플리케이션에 대한 인수를 지정합니다. 예를 들면 다음과 같습니다.
windbg myexe arg1 arg2