我正在编写一个WinDbg脚本来编写一些物理内存,使用!ed命令在内核调试模式下运行它。
当我使用给定值手动运行时,!ed正常工作,例如!ed 9182f084 8
我现在想在脚本中运行它,其中写入的值来自伪寄存器。但以下不起作用:
r $t0=8
!ed 9182f084 @$t0
在这种情况下,我无法弄清楚它正在写什么价值,但它显然不是我希望的整数值8。
感谢任何提示!
答案 0 :(得分:1)
对我也不起作用。看起来!ed命令错误地解析了参数。您可以指定完全无效的内容,它只是默默地忽略该命令。例如,我甚至没有得到这个错误:
kd> !ed 4318b20 XYZ
除了编写自己的.ed版本之外,我能想到的唯一方法就是使用别名:
kd> r @$t0 = 8
kd> as /x ${/v:t0Val} @$t0
kd> !ed 4318b20 ${t0Val}
kd> !dd 4318b20 L1
# 4318b20 00000008
非常荒谬的指定“8”的方法,但是如果你想把它放到一个脚本中它就有用。