tags:

views:

152

answers:

2
+1  Q: 

WinDbg .for loop

I am having trouble getting the WinDbg .for command to work.

I would like to dump an array of c++ structs.

?? gpTranData->mpApplCodes[0] works for a single entry but I would like to loop through n of these.

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

sound logical to me but I get

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

Any ideas?

Scott

A: 

I guess the masm evaluator is missing some data on your gpTranData->miApplCodeCount input. Wrap your expression with either @@c++() or @@().

Scott
+2  A: 

You cannot use C++ operators to modify pseudo-register l-values in Windbg. You can use instead r $t0=@$t0+1 . This will work as you want:

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