Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка ПИ_ИКТ Программирование по С++ (1 семестр) _Хотов.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
5.83 Mб
Скачать

2 Разновидности ошибок

Существует три основных типа ошибок: ошибки этапа компиляции, ошибки этапа выполнения и логические ошибки.

2.1 Ошибки этапа компиляции

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

Наиболее общей причиной ошибок этапа компиляции являются ошибки набора (опечатки), пропущенные точки с запятой, ссылки на неописанные переменные, передача неверного числа (или типа) параметров функции и присваивание переменной значений неверного типа.

После устранения в программе всех синтаксических ошибок и ее успешной компиляции программа будет готова к выполнению и поиску ошибок этапа выполнения и логических ошибок.

2.2 Ошибки этапа выполнения

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

Когда Visual C++ обнаруживает такую ошибку, он завершает выполнение и выводит окно с сообщением о типе ошибки и адресом инструкции, в которой она произошла (см. рисунок 10.1).

Рисунок 10.1 – Окно ошибки времени выполнения

2.3 Логические ошибки

Логические ошибки – это ошибки проектирования и реализации программы. То есть, все операторы допустимы и что-то делают, но не то, что предполагалось. Эти ошибки часто трудно отследить, поскольку IDE не может найти их автоматически, как синтаксические и семантические ошибки. К счастью, IDE включает в себя средства отладки, помогающие найти логические ошибки.

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

3 Методы отладки

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

3.1 Установка точки прерывания

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

Чтобы задать точку прерывания перед некоторым оператором, необходимо установить перед ним текстовый курсор и нажать клавишу F9 или кликнуть мышью на левом боковом поле окна редактирования напротив оператора. Точка прерывания обозначается в виде красного кружка на левом поле окна редактирования (см. рисунок 10.2). Повторное действие (щелчок на указанной кнопке или нажатие F9) снимает точку прерывания. В программе может быть несколько точек прерывания.

Для просмотра всех точек остановки необходимо выбрать пункт Debug | Windows | Breakpoints или нажать комбинацию клавиш Ctrl+Alt+B.

Рисунок 10.2 – Окно редактора с установленной точкой прерывания