常用windbg命令

来源:互联网 发布:人人商城数据库表 编辑:程序博客网 时间:2024/06/14 01:38
刚刚接触windbg,目前使用比较浅,在使用中总结了一些常用的命令,在此记下,今后不断丰富 

WINDBG常用命令

1、kd> dt nt!_EPROCESS

2、!heap 扩展显示堆使用信息,控制堆管理器中的断点,检测泄露的堆块,搜索堆块或者显示页堆(page heap)信息。
语法
Windows NT 4.0的语法

!heap [HeapOptions] [ValidationOptions] [Heap]
!heap -b [{alloc|realloc|free} [Tag]] [Heap | BreakAddress]
!heap -B {alloc|realloc|free} [Heap | BreakAddress]
!heap -?


Windows 2000的语法

!heap [HeapOptions] [ValidationOptions] [Heap]
!heap -b [{alloc|realloc|free} [Tag]] [Heap | BreakAddress]
!heap -B {alloc|realloc|free} [Heap | BreakAddress]
!heap -p PageHeapOptions
!heap [-p] -?


Windows XP和之后的语法

!heap [HeapOptions] [ValidationOptions] [Heap]
!heap -b [{alloc|realloc|free} [Tag]] [Heap | BreakAddress]
!heap -B {alloc|realloc|free} [Heap | BreakAddress]
!heap -l
!heap -s [SummaryOptions] [StatHeapAddress]
!heap -i HeapAddress
!heap -x [-v] Address
!heap -p [PageHeapOptions]
!heap -srch [Size] Pattern
!heap -flt FilterOptions
!heap -stat [-h Handle [-grp GroupBy [MaxDisplay]]]
!heap [-p] -?

3、查看栈 k
   k命令显示的是一定数量的栈帧, 其中帧的数量是由.kframes命令来控制的, 默认值是256

   kp 5
   显示调用栈中前5个函数以及他们的参数.  

   kb 5
   显示调用栈中前五个函数以及他们的前三个参数.  

   kf 5
   显示在调用栈中五个函数所使用的栈的大小.
   每个栈帧所占的空间使用量的计算方法是: 将当前函数的栈基指针与在函数中调用的任何一个函数栈基指针相减.

4、查看寄存器的地址指令:r
   如:查看esp的地址指令是: r esp
5、查看进制数据: ?
   如 ? esp - ebp
6、查看地址的值 dc
   如要查看esp的值: dc esp
   查看stack:kb, kp, kP   
   查看内存:dd,da,db   
   分析死锁:!cs, !lock   
   自动分析:!analyze   
   加载dll: .load, .reload   
   显示加载的模块信息: lm, lmvm