windbg指令

转载 2011年01月24日 13:36:00

http://www.cnblogs.com/zl20857607/archive/2009/12/31/1619875.html

windbg指令

控制线程指令

~       显示当前进程下所有线程

~线程号 n   增加线程的挂起计数

~线程号 m  减少线程的挂起计数

~线程号 F   冻结线程Frozen

~线程号 U       解冻线程UnFrozen

~线程号 g   只恢复指定线程

 

多进程调试

.attach 进程号  先建立1个回话,然后再附加第2个进程。 例如 .attach 0nX     //(0nX十进制数的表示) 

|<进程号> S   切换进程,|为查看当前进程

~<线程号> S    切换线程

 

堆栈命令堆栈命令都是K开头

k     使用K命令进行栈回溯

kL    和上面一样,只是省略了源代码段 L 一定要大写

kb L    还是回溯,显示前3个参数(只是机械的按ebp+8,ebp+0xC,ebp+0x10取三字值,不判断),L意思和上面一样。   

kp;kP  把参数和参数值都以函数原型的格式显示出来。P大写表示参数占用一行。

kv    在kb的基础上增加显示FPO(栈指针省略)

kn     显示序号。

kn f   可以知道相邻栈帧的距离。(也就是看上父函数使用了多少栈空间,适用于检测栈溢出)  

 

观察栈变量

dv    观察栈上的局部变量   dv /i/t/V 表示格式

.frame <栈帧序号>  切换栈帧

du      观察特定值。 例如 du ebp-4 

!for_each_local  枚举当前所有的局部变量

!for_each_frame dv  切换到所有栈帧,并显示局部变量    

 

分析内存

d系列命令用来显示指定地址的内存区域

d {a | b | c | d | D | f | p | q | u | w | W} [Options] [Range]

dy {b | d} [Options] [Range]

d [Options] [Range]

 

//大括号内为显示方式
a   ASCII
b   字节和ASCII码
c   DWORD和ASCII码
d       表示DWORD

D   双精度浮点数

f    单精度浮点数

p   表示按指针宽度显示

q   4字(8字节)

u   UNICODE字符

w   字

W   字和ASCII码

yb  二进制和字节

yd  二进制和双字

Range 指定要显示的内存范围

1. 例如: dd 0012fd9c 0012fda8

       用DWORD表示0012fd9c 到0012fda8之间的内存

2. dd 0012fd9c L4

       用DWORD表示0012fd9c后的4个DWORD

3. dd 0012fda8  L-4

       0012fda8是结束地址,显示在他前面的内存

 

显示字符串

以0结尾的字符串可以使用

da  适用单字节字符集

du  适用UNICODE字符集

 

UNICODE_STRING

dt _UNICODE_STRING = dS

ds    显示(STRING)

 

显示数据类型

dt   按指定数据类型来显示内存中的数据

dt  [模块名!] 类型名

*   类型名可以用通配符

-b  递归显示所有子类型

-r  指定显示深度 -r0 不显示子类型 -r1显示1级子类型

-ny  附加搜索选项,显示某些字段

 

枚举函数符号

dt dbgee!*wmain*

 

搜索内存 s命令

搜索字符串 ASCII 和 UNICODE

s -[[Flags]] sa | su Range

s -[[Flags]] v Range Object

搜索指定范围内的指定内容

s [-[[Flags]] Type] Range Pattern

type用来指定要搜索内容的数据类型(宽度)

b 字节

w 字

d 双字

q 4字

a ASCII

u UNICODE

pattern 指定的搜索内容,可以多个

例:

  s -w 0x400000 12a000 4164 76 44 62 67

  s -w 0x400000 12a000 'A' 'd'

 

可以借助 !for_each_module 子当前进程中所有模块中进行搜索

!for_each_module s -a @#Base @#End "Debugger"

 

修改内存 e命令

e {a | u | za | zu} Address "String"

Address   要修改内存的起始地址

za 以0结尾的ASCII

zu 以0结尾的UNICODE

e{ b | d | D | f | p | q | w } Address [Values]

values 修改成多首

ew 12fc94 41 41 41 41 41

修改12fc94 后的5个word为41

 

修改物理内存地址 只有内核模式有效

!d {b | c | d | p | u | w}

!e {b | d}

 

观察内存属性

!address [Address] 显示某一个内存地址的特征信息

 

 !process 0 0   显示所有进程

 !PROCESS XXXXXXX 2  2代表只显示线程的状态信息

windbg 常用命令~*

32bit和64bit切换:!wow64exts.sw 查看进程运行的时间:vertarget 查看依赖的动态库(包含dll的路径):lmf 查看pdb文件:lm 查看所有的线程堆栈:~*kbn 切...
  • swartz_lubel
  • swartz_lubel
  • 2017年02月10日 00:04
  • 353

54.windbg-a、.dvalloc (直接写反汇编和new内存,实例:加入附加的printf)

a(Assemble) a 命令对指令助记符进行汇编,并将指令代码的结果放入内存。 如果没有指定地址,汇编会从指令指针的当前值所指向的地址开始。要汇编新的指令,可以输入需要的助记符并按下ENT...
  • hgy413
  • hgy413
  • 2013年07月05日 16:38
  • 1650

windbg调试---基本命令

d族命令:显示变量的命令:dda-----ASCII characters.Db----Byte values and ASCII characters.dc-----Double-word valu...
  • purplethunder
  • purplethunder
  • 2008年03月24日 22:55
  • 2167

Windbg调试异常

总结了在windbg中对异常发生位置进行迅速定位的步骤。
  • zhengxh
  • zhengxh
  • 2014年04月08日 20:36
  • 2586

windbg kp kb 命令测试

为了熟悉windbg kb,kp命令,写一段简单的程序调试观察,程序如下: #include #include void printstr(char *str, int b) { print...
  • ilovemayverymuch
  • ilovemayverymuch
  • 2015年01月10日 01:22
  • 1871

62.windbg-p、t、pa、ta(单步步过、单步步入)

p|t =startAddr count 可以让目标程序从指定的startAddr开始指行,注意,如果指定地址跳过了调整栈的代码,栈就会失去平衡 count指定要单步执行的次数,如t 2就是两次运...
  • hgy413
  • hgy413
  • 2013年10月10日 14:47
  • 2493

windbg设断点命令详解(bp, bu, bm, ba 以及bl, bc, bd, be)

bp 命令是在某个地址下断点, 可以 bp 0x7783FEB 也可以 bp MyApp!SomeFunction 。 对于后者,WinDBG 会自动找到MyApp!SomeFunction 对应的地...
  • whatday
  • whatday
  • 2016年10月11日 19:15
  • 893

学习使用常用的windbg命令(u、dt、ln、x)

目录: (1) u命令(反汇编) (2) dt命令(查看数据结构) (3) ln命令(查找就近的符号) (4) x命令(显示模块的符号) (5) k命令(显示调用栈) ...
  • wesley2005
  • wesley2005
  • 2016年05月25日 20:44
  • 3088

windbg常用调试命令和控制命令

1.配置符号 .sympath : 指定符号路径 例如 .sympath c:\windows\symbos 此外我们还可以指定微软的符号服务器,在需要的时候自动下载 .sympath "SRV...
  • cqupt_chen
  • cqupt_chen
  • 2012年10月16日 16:01
  • 8344

Windbg 命令 总结

基本调试: 0. 内置的帮助命令: ? 显示常用的命令 ? /D 显示常用命令和DML .help 显示.命令 .help /D   以DML形式显示'.'命令(顶部会给出链接) .help /D ...
  • xiao_0429
  • xiao_0429
  • 2015年04月06日 17:54
  • 1398
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:windbg指令
举报原因:
原因补充:

(最多只允许输入30个字)