調試會話
.create :建立新的程序并調試 例子 .create notepad.exe
.attach:附加到指定程序 例子 .attach 2568
.restart:讓調試目标重新運作 例子 .restart 或者.restart /f
.crash:強制目标系統崩潰(核心态) 例子 .crash
.reboot:重新開機目标系統(核心态) 例子 .reboot
.detach:分離調試目标 例子 .detach
q:終止調試 例子 q
子產品和符号
.symfix:設定符号伺服器 例子 .symfix c:\symbols
.reload:重新整理子產品和符号 例子 .reload 或者.reload /f
ld:加載符号檔案 例子 ld kernel32
.sympath:顯示或者設定符号路徑 例子 .sympath 或者.sympath+d:\sym\
!sym:顯示符号選項 例子 !sym noisy 或者!sym quiet
x:顯示符号 例子 x VAXPlayer!* 顯示vaxplayer庫中所有的符号
ln:搜尋符号 例子 ln aebc6eac(可以查找符号來對應動态庫)
lm:列子產品或顯示子產品詳情 例子 lm (可以檢視對應的pdb檔案) lmf(可以檢視程式運作的時候對于的dll資訊)
!lmi :子產品或pdb檔案詳情 例子 !lmi ntdll
!dlls:動态庫資訊 例子 !dlls -a
!dh:觀察PE檔案頭 例子 !dh 76930000 -a
轉儲檔案
.dump :産生轉儲檔案 例子 .dump /mfh c:\a.dmp
!analyze:自動分析 例子 !analyze -v
.writemem:将記憶體資料寫到檔案 例子 .writemen c:\dump\test.txt 07288600 L2000
程序
|:顯示或切換程序(使用者态) 例子 |* 或者|2s
!process:顯示程序 例子 !process 0 0
!dml_proc:觀察程序資訊 例子 !dml_proc $$以DML方式顯示程序資訊
.process:顯示或切換程序(核心态) 例子 .process /i 9382a560
.kill:殺程序 例子 .kill 8adc85f0
!peb:觀察程序資訊 例子 !peb
dt:觀察資料結構 例子 dt [email protected]$peb -r
.tlist:列程序 例子 .tlist 列出調試器所在系統的所有程序
線程
~:顯示/切換線程 例子 ~*顯示所有線程 ~2s切換到2号線程
!teb:顯示線程塊 例子 !teb
.thread: 顯示或切換線程(核心态) 例子 .thread 80551d20 或.thread /p 8747da8
!thread:觀察線程(核心态) 例子!thread
!wow64exts.info:運作在64bit系統的32bit線程資訊 例子 !wow64exts.info
!wow64exts.sw:32bit和64bit調試器切換 例子 !wow64exts.sw
記憶體
!address:觀察記憶體空間 例子 !address
!address:觀察記憶體塊屬性 例子 !address 0728988a
d:顯示記憶體資料 例子 db e2001744
dt:按類型顯示記憶體資料 例子 dt _GUID 014511471
e:編輯記憶體資料 例子 eb 00175487 ff
!dd:讀取實體位址 例子 !dd fffffff0
!ed:寫實體位址 例子 !ed fffffff0 8000
!vtop:虛拟位址轉換為實體位址 例子 !vtop 0 badfde064
!pte:顯示頁表項 例子 !pte f6551410
!memusage:顯示實體記憶體使用情況 例子 !memusage
!pool:顯示核心池資訊 例子 !pool e326c000
!vad:觀察程序的位址空間 例子 !vad 8a761451
!sdbgext.hwnd:觀察視窗句柄 例子 !sbdgext.hwnd 001506c1
堆
!heap:顯示堆資訊 例子 !heap 01671010 -a
棧
k:函數調用序列 例子 ~*kbn
.frame :切換目前棧幀 例子 .frame 2
dds:顯示資料和符号 例子 dds 80418424
dv:顯示局部變量 例子 dt
寄存器
r:讀寫寄存器 例子 r cr3
rdmsr:讀取MSR寄存器 例子 rdmsr 19c
上下文
.ecxr:切換到異常上下文 例子 .ecxr
.tss:切換到指定TSS 例子 .tss 28
.trap:切換到陷阱棧 例子 .trap 80541471
.effmach:切換32和64bit上下文 例子 .effmach X86
斷點
bp:軟體斷點 例子 bp test!test.cpp:65
ba:硬體斷點 例子 ba w4 00006484
bm:成批設定斷點 例子 bm /a nt!Dbgk*
bd/be/bc/dl:管理斷點
執行和跟蹤
g:恢複執行 例子 g
p:單步執行 例子 p
t:單步跟蹤 例子 t
wt:自動跟蹤 例子 wt -l 3
反彙編
u:反彙編 例子 u nt!PsGetcutrentID
uf:反彙編整個函數 例子 uf RtlLeaveCriticalSection
ub:反向反彙編 例子 ub 14785214
a :彙編 例子 a<位址>
死鎖
!locks:掃描關鍵區(使用者态)或ERESOURCE(核心态) 例子 !locks
!cs:觀察關鍵區 例子 !cs -l
!alpc:觀察ALPC端口 例子 !alpc /m 02145895
處理器
!pcr:管理處理器控制區 例子 !pcr
dg:觀察段描述符 例子 dg @fs
!cpuid:顯示CPU型号 例子 !cpuid
!cpuinfo:顯示cpu屬性(核心态) 例子 !cpuinfo
!irql:顯示儲存的IRQL