WinDbg .for循环

时间:2009-11-17 15:41:29

标签: windbg

我无法让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] }'

有什么想法吗?

斯科特

2 个答案:

答案 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 ++()或@@()包装你的表达。