2009-11-17 10 views
4

Je n'arrive pas à faire fonctionner la commande WinDbg .for.WinDbg .for loop

Je voudrais vider un tableau de structures C++.

?? gpTranData->mpApplCodes[0] fonctionne pour une seule entrée, mais je voudrais faire une boucle sur n de ceux-ci.

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

son logique pour moi, mais je reçois

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

Toutes les idées?

Scott

Répondre

0

Je suppose que l'évaluateur de masm manque des données sur votre entrée gpTranData->miApplCodeCount. Enveloppez votre expression avec @@ C++() ou @@().

+0

.pour (r $ t0 = 0; @ t0 $ <@@ C++ (g_pTranData-> m_iApplCodeCount); @ t0 $ ++) {?? & g_pTranData-> m_pApplCodes [@ $ t0]} s'exécute mais ne pas itérer $ t0 –

6

Vous ne pouvez pas utiliser les opérateurs C++ pour modifier les valeurs l du pseudo-registre dans Windbg. Vous pouvez utiliser à la place r $ t0 = @ $ t0 + 1. Cela fonctionne comme vous voulez:

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