Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование.doc
Скачиваний:
40
Добавлен:
12.04.2015
Размер:
4.91 Mб
Скачать

Быстрое обнаружение ошибочных строк

Теперь необходимо выполнить повторную компиляцию программы, после которой окно сообщений будет выглядеть так, как показано на рис. 3.6.

Существует достаточно быстрый способ перехода от окна сообщений к окну редактирования. Поместим курсор на интересующей строке сообщения, например на первом предупреждении (рис. 3.7):

C:\Program Files\Microsoft Visual Studio\MyProjects\Ex_1\Error.c(22) : error C2143: syntax error : missing ';' before ')'

Выделив первую строку сообщений об ошибках, нажмем клавишу [Enter] или сделаем двойной щелчок мыши на сообщении. Курсор в окне редактирования будет автоматически помещен в строку исходного кода, вызвавшую появление сообщения об ошибке, а слева от строки появится стрелка (рис. 3.7). Отсюда видна ошибка – после идентификатора SIZE вместо запятой должна стоять точка с запятой.

Продолжение отладки

После того как будут исключены все синтаксические ошибки, программа готова к новой попытке построить исполняемый файл. Выполнив команду Rebuild All, получим Ex_1.exe. Запустить Ex_1.exe можно командой Execute Ex_1.exe из меню Build. Результат работы программы показан на рис. 3.8.

Использование встроенного отладчика

Созданная программа в начале своей работы отображает на экране исходное содержимое массива данных, после чего запрашивает продолжение работы. ОтветY (yes – да) сигнализирует о том, что можно заполнить массив собственными данными и отобразить их на экране.

Из рисунка 3.8 можно сделать вывод о том, что хотя программный код набран совершенно правильно, т.е. в нем нет синтаксических ошибок, программа работает не так, как нам бы хотелось. Ошибки такого рода называются логическими. К счастью, встроенный в Visual C++ отладчик содержит ряд средств, которые могут помочь найти и логические ошибки. Во-первых, можно выполнять программу в пошаговом режиме, строка за строкой. Во-вторых, появляется возможность анализировать значения переменных в любой момент выполнения программы.

Разница между командами Step Into и Step Over

Когда начинается процесс отладки, появляется панель инструментовDebug (рис. 3.9, б). Из множества представленных на ней кнопок наиболее часто задействуются Step Into (четвертая справа в верхнем ряду) и Step Over(третья справа). В обоих случаях программа будет запущена на выполнение в пошаговом режиме, а в тексте программы выделяется та строка, которая сейчас будет выполнена.

Различия между командами Step Into и Step Over проявляются только тогда, когда в программе встречается вызов функции. Если выбрать командуStep Into, то отладчик войдет в функцию и начнет выполнять шаг за шагом все ее операторы. При выборе команды Step Over отладчик выполнит функцию как единое целое и перейдет к строке, следующей за вызовом функции. Эту команду удобно применять в тех случаях, когда в программе делается обращение к стандартной функции или созданной вами подпрограмме, которая уже была протестирована.

Выполним пошаговую отладку разрабатываемой программы. При выполнении командыStep Into пункт главного меню Build меняется на пункт главного меню Debug:

Как видно из рис. 3.10, в окне редактирования появилась стрелка (ее называют индикатором трассировки), указывающая на строку программы, которая будет выполнена на следующем шаге. В данный момент она указывает на тело функции main().

Пошаговое выполнение осуществляется командами Step Into или Step Over.