WinDbg .for цикл

У меня возникли проблемы с запуском команды WinDbg .for.

Я хотел бы сбросить массив структур С++.

?? gpTranData->mpApplCodes[0] работает для одной записи, но я хотел бы просмотреть n из них.

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

звучит логично для меня, но я понимаю

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

Любые идеи?

Скотт


person Scott Norberg    schedule 17.11.2009    source источник
comment
Проверьте это: jumpdollar.blogspot.com/2014/09 /   -  person tairqammar    schedule 30.10.2019


Ответы (2)


Вы не можете использовать операторы C++ для изменения L-значений псевдорегистра в Windbg. Вместо этого вы можете использовать r $t0=@$t0+1 . Это будет работать так, как вы хотите:

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

Я предполагаю, что оценщику masm не хватает некоторых данных о вашем вводе gpTranData->miApplCodeCount. Оберните выражение либо @@c++(), либо @@().

person deemok    schedule 17.11.2009
comment
.for (r $t0=0;@$t0‹@@c++(g_pTranData-›m_iApplCodeCount);@$t0++){ ?? &g_pTranData-›m_pApplCodes[@$t0] } запускается, но не повторяет $t0 - person Scott Norberg; 18.11.2009