roland07
Jun 2 2011, 09:02
Написал такую конструкцию:
for (int k=0;k<10;k++)
func(k)
Встал дебаггером на цикл и жму F10 для пошаговой отладки... При этом открываю watch и пытаюсь смотреть переменную k. Ее дебаггер не видит и пишет что переменнаяы вне зоны доступа...Почему так получается?
Непомнящий Евгений
Jun 2 2011, 09:52
Оптимизация. Может быть func встроена и k вообще нету. Может быть k лежит в регистре и студия ее не видит.
Можете понизить уровень оптимизации или посмотреть асм. Еще можно написать volatile int k, это позволит увидеть переменную в дебагере, но добавит накладные расходы на обращение к ней. Подходит как временная мера. Есть еще прагмы, которые локально изменяют уровень оптимизации в пределах функции.