< WinDbg 명령어 >
3가지 타입
1) 그냥 명령어. ex)dc
=> 디버거의 자체 내장기능
2) 점(.) 명령어. ex).load
=> 심볼을 로드나 환경 설정 변경과 같은 디버거 자체를 제어
3) 느낌표(!) 명령어. ex)!dc
=> 디버거에 내장이 되어있지 않은 확장 명령
kd>.reload |
심볼을 로드 |
kd>lm |
심볼이 로드된 상태를 보기 |
kd>!vm |
기본적인 메모리 정보 보기. 실행중인 프로그램 목록과 메모리 크기 출력 |
kd>!lookaside |
다양한 시스템 참조 목록의 내용 및 크기를 표시 |
kd>!session |
활성화된 세션의 목록의 보여준다 |
kd>!sprocess |
세션의 데이터 구조체와 프로세스의 주소를 나타냄 |
kd>dd (프로세스명) |
PE값 볼 수 있다. |
kd>!pte |
가상주소를 나타내는 PDE 및 PTE를 표시한다. |
kd>!handle |
사용중인 프로세스에 대한 테이블을 표시 |
kd>dt nt!_file_object (값) |
파일개체주소의 dt를 보여줌 |
kd>dt_EPROCESS |
운영체제의 서로 다른 옵셋의 이름을 출력 |
kd>.hh xx |
xx에 대한 도움말 파일을 부른다. |
kd>.chain |
로드된 확장 DLL을 보여준다. |
kd>.load |
확장 DLL을 로드한다. |
kd>.unload |
모든 확장 DLL을 언로드한다. |
kd>!process 0 |
모든 프로세스 보기 (!process 0 4 쓰레드 포함 모든 프로세스 보기) |
kd>!dc |
물리 메모리 내용 보기 |
kd>? (16진수) |
10진수로 보기 |
kd>!driver |
현재 로드된 드라이버 보기 |
kd>!kb |
스택 추적 |
kd>x |
심볼을 확인 |
kd>ld |
특정 모듈의 심볼을 로드한다. |
kd>dl |
Double-Linked List를 트레이싱한다. |
kd>!idt(kdex2x86) |
인터럽트 디스크립터 테이블을 보여준다. |
kd>!drvobj kbdclass |
kbdclass 드라이버의 정보를 보여준다. |
kd>kn |
콜스택 확인 |
kd>.frame (값) |
조사를 원하는 스택프래임으로 이동 |
kd>dv |
스택에 있는 변수를 확인 |
kd>.symfix (c:\Os...) |
심벌패스를 자동으로 마이크로 소프트의 웹 심벌로 지시하여 준다. |
kd>!thread |
지정한 스레드에 대한 자세한 정보를 출력 |
kd>!stacks |
시스템데 있는 모든 스레드의 스택백트레이싱 내용을 출력 |
kd>dg |
지정한 셀렉터에 대한 정보를 출력하여 준다. |
kd>!vad (값) |
유저 메모리의 정보를 바이너리 트리 형태로 저장 출력하여 준다. |
kd>!dlls |
현재 프로세스에 로드되어 있는 모든 DLL |
kd>.formats (값) |
지정한 상수 값을 여러 가지 데이터 타입으로 보여준다. |
kd>!IDT |
인터럽트 디스크립터 테이블의 내용을 보여준다. |
kd>!pcr |
Processor Control Region 내용을 출력하여준다. |
kd>RDMSR |
Model-Specific Register 값을 읽는다. |
kd>!drvogj (드라이버) |
드라이버 객체의 정보를 볼 수 있다 |
kd>dt nt!_kthread |
구조체의 형태를 확인 |