Как просмотреть переменные во время выполнения программы - PullRequest
1 голос
/ 26 мая 2011

Я пишу относительно простую программу на C на Visual C ++, и у меня есть две глобальные переменные, значения которых я хотел бы узнать при запуске программы. Значения не меняются после того, как они назначены, но моих способностей программирования недостаточно, чтобы иметь возможность быстро создать текстовое поле, отображающее значения (я работаю в Win32), поэтому ищу быструю подпрограмму, которая может быть экспортирована значения в текстовый файл, чтобы я мог посмотреть на них и проверить, что они должны быть. Значения 'double'.

У меня сложилось впечатление, что это было целью отладчика, но для меня отладчик не запускается, так как «файл не найден» всегда так.

Есть идеи, как мне легко проверить значение глобальной переменной (double) в приложении Win32?

Ответы [ 3 ]

3 голосов
/ 26 мая 2011

Включите отладчик.Возможно, вам следует опубликовать еще один вопрос с информацией о том, почему он не будет работать - с как можно большим количеством информации.

После того, как вы это сделаете, установите точку останова и в Visual C ++ (я только что попробовал с 2010)Наведите указатель мыши на имя переменной.

Вы также можете использовать окно просмотра для ввода выражений и отслеживания их значений.

1 голос
/ 26 мая 2011

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

Однако, если вы хотите запустить программу в режиме отладки, установите точку останова в соответствии с предложением (в VS2010 вы можете щелкнуть правой кнопкой мыши строку, на которой вы хотите установить точку останова).

Тогда вам просто нужно перейти в Панели инструментов -> Панель отладки.

0 голосов
/ 26 мая 2011

Я обычно люблю печатать #ifdef _DEBUG (или писать соответствующий макрос или даже дополнительный код) и отправлять на выход все, что может помочь мне отследить, что делает программа.Поскольку ваши переменные никогда не меняются, я бы так и сделал.Однако затопить консоль большим количеством значений - это плохо, и в таких случаях я бы положился на утверждения и отладчик - вы должны действительно понять, почему он не работает.Я сделал достаточно Python и Ruby, чтобы сказать вам, что отладка сложной программы, когда все, что у вас есть, это printf, хотя и выполнимая, чрезвычайно разочаровывает и занимает гораздо больше времени, чем нужно.ваш тип данных двойной (пожалуйста, убедитесь, что у вас есть веская причина не использовать вместо этого числа с плавающей запятой), если вы добавите какое-либо утверждение, помните, что следует избегать ==, если вы не знаете, что на 100% == это то, что вы действительно хотите(что маловероятно, если ваши данные получены из расчетов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...