WinDbg 명령어정리
Command |
option |
Desc | |
종료 | |||
q |
디버깅 종료 | ||
qd |
디버깅 종료;연결해제 – User-mode : Target Application은 종료되지 않는다. – Kernel-mode : Debugee OS는 Pending되지 않고 계속해서 동작한다. | ||
디버깅 환경정보 | |||
vertarget |
타겟 컴퓨터 정보 표시 | ||
version |
디버그 환경 정보 표시 | ||
.lastevent |
마지막 디버그 이벤트 정보 표시 | ||
|| |
디버깅 세션 정보 표시 | ||
symble & sorurce | |||
.symfix |
MS 심볼경로 설정 | ||
.sympath |
심볼경로 확인/설정 | ||
!sym noisy |
심볼파일 검색 과정을 출력 | ||
!sym quiet |
심볼파일 검색 과정을 출력하지 않음 | ||
.srcpath |
.srcpath+ d:\project |
소스경로 설정 | |
.srcnoisy |
.srcnoisy 1 |
소스경로 검색 과정을 출력 | |
모듈 | |||
lm |
로드된 모듈 표시 | ||
lm m nt* |
패턴과 일치되는 모듈 표시 | ||
v |
모듈 상세정보 표시 | ||
!lmi |
!lmi ntdll.dll |
모듈 상세정보 표시 | |
.reload |
/f test.sys |
심볼을 즉시 로드 | |
/i test.sys |
TimeStamp가 맞지 않아도 강제로 심볼 로드 | ||
/user |
[kd] User symbol load | ||
x |
x nt!* x *!*abc* x /v nt!NtCreateFile x /t nt!NtCreateFile x /n nt!ntCreate* |
심볼 타입을 표시. 데이터 타입을 표시 이름순으로 정렬 | |
ln |
ln [address] |
해당 주소에 근접한 심볼의 정보 표시 | |
!dh |
!dh [Option] Address -f Display file headers -s Display Section Headers -a Display all header nformation |
displays the headers for the specified image | |
레지스터 | |||
r |
레지스터 정보 표시 | ||
r $proc |
현재 프로세스의 PEB주소( user-mode) 현재 프로세스의 EPROCESS주소( kernel-mode) | ||
r $thread |
현재 스레드의 TEB주소( user-mode) 현재 스레드의 ETHREAD주소( kernel-mode) | ||
r $tpid |
현재 프로세스 ID(PID) | ||
r $tid |
현재 스레드 ID(TID) | ||
언어셈블 | |||
u |
f b |
언어셈블 언어셈블(함수전체) 언어셈블(ip이전의 8개 명령어) | |
콜스택 | |||
k |
[n] p b n v f |
콜스택 정보표시 함수정보 출력 인자표시 프레임번호 FPO정보 표시 스택 사용량 표시 | |
break point | |||
bp |
bp 0x123456 |
bp 설정 | |
bl |
bp 리스트 출력 | ||
bc |
bc * | [frame_no] |
bp 삭제 | |
bd,be |
bd * | [frame_no] |
bp disable/enable | |
bm |
bm notepad!*Win* |
패턴과 일치하는 모든심볼에 bp설정 | |
bu |
bu aaa!bbb |
로드되지 않은 심볼에 대한 bp설정 | |
ba |
특정 주소에 access시 bp | ||
지역변수 | |||
dv |
dv modulr!test* /i /V |
심볼유형과 인자유형 표시 변수저장 위치 표시( register or address ) | |
데이터유형 | |||
dt |
df _EPROCESS 0xaddr dt _PEB @$peb |
주소를 특정 데이터 형으로 변환해서 표시 Current Process PEB정보 디스플레이 | |
du dpu |
Unicode string 표시 | ||
da dpa |
Ansi string 표시 | ||
dc |
|||
db |
|||
dy |
|||
!address |
!address !address [address] |
||
dds |
dds [Options] [Range] dds esp esp+100 |
Display Words and Symbols esp 부터 esp+100까지의 값을 출력 - callstack이 깨진경우, stack확인의 용도로 사용할 수 있다 | |
프로세스 & 스레드 정보 | |||
!peb |
PEB(Process Environment Block)표시 | ||
!teb |
TEB(Thread Environment Block) 표시 | ||
~*kb |
모든 thread의 콜스택 표시 | ||
!gle |
API의 마지막 에러코드 표시 | ||
실행 제어 | |||
t |
Trace | ||
~.t |
다른 스레드를 중지시킨 상태에서 하나의 statementt 실행 | ||
g |
|||
p |
Step Over | ||
gu |
gu ~0 gu |
현재함수가 복귀할 때 까지 실행 스레드 0을 제외한 모든 스레드를 freeze함 | |
wt |
-oR |
내부에서 호출된 함수와 함수호출 횟수등의 정보 표시 (특정 API 내부에서 호출되는 함수와 결과를 한눈에 확인 할 수 있다.) | |
.cxr |
컨텍스트 변경 | ||
!ready |
|||
.thread |
|||
!thread |
|||
.trap |
|||
.process |
|||
!process |
|||
ed |
|||
eb |
eb .-6 90 90 90 90 90 90 |
6byte를 NOP(0x90)으로 변경 | |
!error |
!error [error code] |
에러코드 정보표시 | |
|
|
| |
|
|
| |
Set Exceptions | |||
sxe |
sxe av(0xc0000005) sxe ld:[moduleName] sxe ud:[moduleName] |
Set Exceptions Break when access violation Break when [module] load Break when [module] unlod | |
sxd |
sxd av |
Disable Break when av(first chance) | |
Create Dump | |||
.dump |
/f full user-mode dump /m minidump /u Append date,time,PID |
Create Dump File | |
.writemem |
.writemem FileName Range
: Range – BaseAddr L”DumpSize”
.writemem c:\a.dll 0x00030000 L28000 |
writes a section of memory to a file | |
WinDBG 설정 | |||
.lines -e |
라인정보 표시 | ||
.enable_unicode 1 |
Watch, local변수 창에 유니코드 표시 | ||
ed Kd_DEFAULT_MASK 8 |
Vista이상: DbgPrint출력 활성화 | ||
'Windows Programming > 디버깅' 카테고리의 다른 글
[WinDbg] Kernel 모드에서 특정 프로세스 디버깅하기 (0) | 2011.07.05 |
---|---|
WOW64 디버깅 (0) | 2011.06.27 |
[Link] 수동으로 콜 스택 확인하기 (0) | 2009.12.30 |
어셈코드 분석 (0) | 2009.07.22 |
WinDbg Vista에서 디버그 프린트 출력하기 (0) | 2009.04.10 |