Windbg伪寄存器扩展

Windbg伪寄存器扩展,windbg,Windbg,我正在尝试使用Windbg在Windows XP中自动执行设备驱动程序的调试会话。我的设备有一个“索引”寄存器和一个“数据”寄存器,都是内存映射的。索引寄存器必须填充内部寄存器的索引,并且可以从数据寄存器读取值。 因此,以下Windbg命令正确打印内部寄存器0x4C的值: !ed [uc] 0xfa000000 0x4c; !dd [uc] 0xfa000004 L1 现在,我想转储一系列内部寄存器,但别名扩展似乎没有按预期在中工作!指挥部。我正在尝试这个循环: .for (r $t0=0;

我正在尝试使用Windbg在Windows XP中自动执行设备驱动程序的调试会话。我的设备有一个“索引”寄存器和一个“数据”寄存器,都是内存映射的。索引寄存器必须填充内部寄存器的索引,并且可以从数据寄存器读取值。 因此,以下Windbg命令正确打印内部寄存器0x4C的值:

!ed [uc] 0xfa000000 0x4c; !dd [uc] 0xfa000004 L1
现在,我想转储一系列内部寄存器,但别名扩展似乎没有按预期在中工作!指挥部。我正在尝试这个循环:

.for (r $t0=0; @$t0<0x100; r $t0=@$t0+1) { !ed [uc] 0xfa000000 @$t0; !dd [uc] 0xfa000004 L1  }

.for(r$t0=0;@$t0是的!ed不像其他命令那样计算参数。您需要事先计算参数,例如使用别名,如下所示:

.for (r $t0=0; @$t0<0x100; r $t0=@$t0+1) { as /x val @$t0 ; .block {!ed [uc] 0xfa000000 ${val} ; !dd [uc] 0xfa000004 L1 } }
。(r$t0=0;@$t0)