windbg命令集合

调试会话

.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 ntdll!_PEB@$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

  

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值