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

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

Теперь необходимо выполнить повторную компиляцию программы, после которой окно сообщений будет выглядеть так, как показано на рис. 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.