2009-11-17 43 views
4

我無法使WinDbg .for命令正常工作。WinDbg .for循環

我想轉儲一個C++結構體的數組。

?? gpTranData->mpApplCodes[0]適用於單個條目,但我想通過其中的n個循環。

.for ($t0=0;$t0<(gpTranData->miApplCodeCount);$t0++){ ?? &gpTranData->mpApplCodes[$t0] } 

聲音邏輯給我,但我得到

Numeric expression missing from '>miApplCodeCount);$t0++){ ?? &gpTranData->m_pApplCodes[$t0] }' 

任何想法?

斯科特

回答

0

我猜MASM評估缺少您gpTranData->miApplCodeCount輸入一些數據。用@@ C++()或@@()包裝你的表達式。

+0

。對於(R $ T0 = 0; @ $ T0 <@@ C++(g_pTranData-> m_iApplCodeCount); @ $ T0 ++){?? &g_pTranData-> m_pApplCodes [@ $ t0]} 運行但不會迭代$ t0 – 2009-11-18 16:06:47

6

您不能使用C++運算符來修改Windbg中的僞寄存器l值。你可以用r $ t0 = @ $ t0 + 1。這將工作,你想要:

.for (r $t0=0;@$t0<@@c++(g_pTranData->m_iApplCodeCount);r [email protected]$t0+1){ ?? &g_pTranData->m_pApplCodes[@$t0] }