Отладка программ в Borland C
Отладка (англ. debug) — этап разработки компьютерной программы, на котором обнаруживают и локализуют ошибки. Чтобы понять, где возникла ошибка, приходится: • Узнавать текущие значения переменных; • Выяснять, по какому пути выполнялась программа.
Отладчик • Отладчик (дебаггер, англ. debugger) — компьютерная программа, предназначенная для поиска ошибок в других программах. • Отладчик позволяет выполнять трассировку, отслеживать, устанавливать или изменять значения переменных в процессе выполнения кода, устанавливать и удалять контрольные точки или условия остановки и т. д.
Трассировка • Трассировка через «Trace Into» позволяет пошагово выполнить программу, оператор за оператором. • Входит внутрь функций.
Трассировка
Трассировка с перешагиванием • Трассировка с перешагиванием ( «Step Over» ) выполняет трассировку, не осуществляя вход внутрь функций. • Трассировка происходит только внутри данной функции.
Идти к месту курсора • Команда «Go to Cursor» исполняет программу до той точки, где стоит курсор в меню.
Сброс программы При использовании пункта меню «Program reset» , происходит сброс программы, что означает: • Остановку процесса отладки • Высвобождение задействованной памяти • Закрытие любых открытых программой файлов.
Отладчик Borland C++ 3. 1
Инспектирование Для вызова окна инспектирования необходимо открыть меню Debug => Inspect. Данное окно позволяет просматривать значения в элементах данных.
Инспектирование В Borland C++ можно инспектировать следующее: • простые типы данных (как char или unsigned long) • массивы • указатели • структуры • классы • типы • объединения • функции
Инспектирование
Определить и модифицировать В диалоговом окне «Evaluate and Modify» возможны следующие действия: • Определить переменную или выражение • Просмотреть значение любой переменной и других данных • Изменить значение простейших элементов данных
Определить и модифицировать
Стек вызовов • Команда «Call Stack» вызывает диалоговое окно, в котором показана последовательность вызванных функций в разрабатываемой программе на данном шаге.
Стек вызовов #include <stdio. h> int func 3(int c) { return c++; } int func 2(int b) { return func 3(++b); } int func 1(int a) { return func 2(++a); } main() { int a = 0; printf("%dn", func 1(a)); return 0; }
Стек вызовов
Наблюдения • Наблюдения позволяют отслеживать данные, подвергающиеся отладке. • В меню «Watches» возможно добавить, удалить и отредактировать наблюдаемые данные.
Наблюдения
Точки останова • Точка останова (англ. breakpoint) — это преднамеренное прерывание выполнения программы, при котором выполняется вызов отладчика. После перехода к отладчику, программист может исследовать состояние программы (состояние памяти, регистров процессора, стека и т. п. ), с тем чтобы определить, правильно ли ведёт себя программа. После остановки в отладчике, программа может быть завершена либо продолжена с того же места где произошёл останов.
Установить точку останова