Отладка с использованием Microsoft Visual C ++ 2010 Express (бесплатная версия) - PullRequest
2 голосов
/ 23 мая 2011

У меня есть код C, который я отлаживаю с помощью MS-Visual C ++ 2010 (бесплатная версия). В коде некоторые переменные объявлены и используются внутри блока кода локальной области видимости, который определяется круглыми скобками
{... }

Но при отладке отладчик не показывает значения в окне наблюдения для всех переменных, которые объявлены внутри этого блока кода, даже когда точка выполнения кода находится внутри блока кода. Там написано "Ошибка: символ не найден". это очень мешает мне при отладке этого кода.

Когда я перемещаю объявление одной конкретной такой переменной в начало функции, удаляя ее из блока кода {}, отладчик может правильно показывать мне свои значения.

  1. В чем причина этого странного поведения? Это бесплатная версия, вызывающая это?

  2. Без внесения изменений в код, использования некоторых параметров проекта и т. Д., Как я могу увидеть значения таких локальных переменных области блока кода в окне просмотра отладчика?

1 Ответ

2 голосов
/ 20 сентября 2011

Отвечаю здесь, потому что я не вижу нигде этой проблемы.

Перейдите на страницу свойств вашего проекта и посмотрите на свойство Optimization в разделе C / C ++. Если оптимизация включена, некоторые из ваших переменных оптимизируются. Когда это происходит - и это довольно часто - нет никакой переменной для проверки, поэтому вы получаете сообщение об ошибке «символ не найден», и оно не будет отображаться в вашем локальном или автоматическом окне. Измените свойство Оптимизация на Отключено, перестройте и посмотрите, решена ли проблема. Это, вероятно, будет.

Если оптимизация важна для вашего проекта, я бы отключил ее разработку, но вернул бы к тому, что вы хотите периодически тестировать. Иногда включение оптимизации может что-то сломать, и если это произойдет, вы захотите иметь представление о том, что вы изменили в последнее время, потому что в противном случае может быть очень трудно найти проблему.

...