# Отладка приложения При написании кода неизбежно возникают ошибки и если синтаксические ошибки нам помогает обнаружить среда разработки (IDE), то часть ошибок могут проявиться только при работе приложения (**Run Time Error** - ошибки времени выполнения). Это могут быть как логические ошибки программиста, так и неверные входные данные. Поиск ошибок выполняется двумя способами: *отладка* и *тестирование*. Тестирование отдельная большая тема и мы будем изучать его в следующем году. Все IDE позволяют производить отладку приложения, т.е. пошаговое выполнение кода с просмотром значений переменных (для компилируемых приложений есть специальный режим сборки - **debug**, когда в код программы включается отладочная информация, позволяющая связать двоичный код с исходным). Перед началом отладки нужно убедиться, что в IDE установлен режим сборки **Debug**: ![](../img/debug_01.png) Перед запуском в режиме отладки установите **точку остановки** в том месте кода, которое вы хотите проверить (просто кликнув кнопкой по левому полю): ![](../img/debug_02.png) Когда выполнение приложения дойдет до этой точки, выполнение приостановится и мы сможем исследовать состояние и пошагово выполнить код: * желтая стрелка слева показывает в каком месте кода мы находимся * в нижней панели есть кнопки, позволяющие выполнять код по шагам. эти кнопки имеют и быстрые клавиши * *шаг с заходом* (F7) - используется, если мы хотим "зайти" в функцию, которая находится в текущей строке * *шаг с обходом* (F8) - выражение в текущей строке выполняется за один шаг, без захода * значение переменной можно посмотреть * либо просто наведя курсор на неё: ![](../img/debug_04.png) Если переменная не скалярного типа, а объект, то содержимое объекта можно посмотреть кликнув по треугольнику слева от содержимого: ![](../img/debug_05.png) * либо, если нам нужно отслеживать её значение на каждом шаге, внизу экрана ![](../img/debug_06.png) Можно на вкладке "контрольные значения" добавить сложное выражение (цепочку свойств объекта+- или даже вызов функции) ![](../img/debug_07.png) ## Задание Выполните в режиме отладки любую программу из прошлой лабораторной работы. Все этапы сохраняйте скриншотами и включите их в отчёт (`readme.md`) 1. Используйте точки останова 1. Отслеживайте значения переменных на вкладке "контрольные значения" Пример включения изображения в `md` файл ```md Формат ![alt-строка (не обязательно)](<путь к изображению>) Пример из этой лекции ![](../img/debug_07.png) ``` * Имена файлов чувствительны к регистру. * Используйте относительные пути (например, для текущего каталога `./`)