我无法让WinDbg .for命令工作。
我想转储一系列c ++结构。
?? gpTranData->mpApplCodes[0]
适用于单个条目,但我想循环使用其中的一个。
.for ($t0=0;$t0<(gpTranData->miApplCodeCount);$t0++){ ?? &gpTranData->mpApplCodes[$t0] }
对我来说合乎逻辑,但我得到了
Numeric expression missing from '>miApplCodeCount);$t0++){ ?? &gpTranData->m_pApplCodes[$t0] }'
有什么想法吗?
斯科特
答案 0 :(得分:7)
您不能使用C ++运算符来修改Windbg中的伪寄存器l值。您可以改用 r $ t0 = @ $ t0 + 1 。这将按你的意愿工作:
.for (r $t0=0;@$t0<@@c++(g_pTranData->m_iApplCodeCount);r $t0=@$t0+1){ ?? &g_pTranData->m_pApplCodes[@$t0] }
答案 1 :(得分:0)
我猜masm评估者遗漏了gpTranData->miApplCodeCount
输入的一些数据。用@@ c ++()或@@()包装你的表达。