WinDbg学习笔记五 - 内存,寄存器

WinDbg也提供了一系列命令来访问内存跟寄存器。


以之前调试的程序状态为例,来演示几个常用的命令。



开始之前先介绍命令?,用来查看符号的值。比如?speed,则会显示出speed的值,即它的地址。

WinDbg学习笔记五 - 内存,寄存器

左边是10进制的值,右边是16进制。可以看到当前的地址是0133f9b8.


输入db 0133f9b8, 按字节来查看该地址的值。

WinDbg学习笔记五 - 内存,寄存器

或者dw 0133f9b8 或者 dd, 按word或者dword来查看。

WinDbg学习笔记五 - 内存,寄存器

如果直接用d命令,则会按照上一次的选项来查看。如果不带地址,则是从上一次显示结束的地方继续查看。


e* 系列命令跟d*类似,不同的是e是写入。比如eb 0133f9b8 1 1 1 1, 则会把1 1 1 1一次写入。

WinDbg学习笔记五 - 内存,寄存器


dv用于查看局部变量的值,比如dv speed。

WinDbg学习笔记五 - 内存,寄存器

或者用dv查看全部的当前作用域下的值,

WinDbg学习笔记五 - 内存,寄存器

另外还可以用扩展命令!address来查看指定的内存地址信息。如

WinDbg学习笔记五 - 内存,寄存器


寄存器的操作

r命令可以用来查看或者修改寄存器以及伪寄存器。当然也可以用?来查看。

WinDbg学习笔记五 - 内存,寄存器


用r显示如下,

WinDbg学习笔记五 - 内存,寄存器


这个时候就可以用dt命令来查看它的结构。

WinDbg学习笔记五 - 内存,寄存器