1.5.3 Застосування точок зупинки

Покроковий метод налагодження зручний для налагодження невеликих нескладних програм або окремих ділянок великої програми. Але уявіть собі, що ваша програма містить цикл, який має бути виконаний багато разів. Для того щоб перевірити правильність виконання всього цього циклу в покроковому режимі, вам довелося б дуже довго клацати мишкою. У подібних випадках застосовуютьсяточки зупинки (Breakpoint).

Визначення.Точка зупинки –це спеціальна мітка, якуу режимі налагодження програміст може поставити проти будь-якого рядка програми.

Потім програма запускається під керуванням відладчика. Але це не реальна робота. Це лише імітація роботи мікроконтролера. Програма виконується рядок за рядком, поки в черговому рядку не зустрінеться точка зупинки. Виявивши таку точку, відладчик припиняє виконання програми.

Для керування точками зупинки програма має кілька вбудованих директив, які показані в таблиці 1.2.

Таблиця 1.2 - Директиви управління точками зупинки

Поставити точку зупинки

Поставити (зняти) точку зупинки у рядку, де знаходиться курсор

Прибрати всі точки зупинки

Remove all Breakpoints

Прибрати всі поставлені раніше точки зупинки

Створити програмну точку зупинки

New Breakpoints/ Program Breakpoint

Створити точку зупинки шляхом завдання програмної умови

Створити точку зупинки за даними

New Breakpoints/ Data Breakpoint

Створити точку зупинки шляхом завдання умови за даними

Для того, щоб поставити точку зупинки у будь-якому рядку програми, потрібно спочатку помістити в цей рядок текстовий курсор. Потім вибрати директиву «Поставити точку зупинки» (див.табл. 1.2).Точка зупинки виглядає як коричневий кружечок навпроти обраного рядка програми на лівій межі текстового вікна.

Якщо помістити курсор у рядок, де вже є точка зупинки, і виконати ще раз директиву «Поставити точку зупинки», то точка забирається. Прибрати відразу всі поставлені точки зупинки можна за допомогою директиви "Прибрати всі точки зупинки".

Другий спосіб проставлення точок зупинки– завдання їх через меню. Призначений для цього пункт New Breakpoints меню Debug має два підпункти. За допомогою підпункту "Program Breakpoint" можна встановлювати програмні точки зупинки. Тобто такі, які ми ставили попереднім способом.

Для цього необхідно заповнити поле «Break execution after: — hits» («Зупинити виконання після: — проходів»). Якщо число в цьому полі не дорівнює нулю, то програма зупиниться в цій точці зупинки не з першого разу, а лише тоді, коли пройде через неї вказану кількість разів.

Якщо ви встановили вашу точку зупинки не через меню, а безпосередньо в тексті програми, ви все одно можете викликати описаний вище діалог і змінити кількість проходів, клацнувши; мишею по рядку з описом потрібної точки зупинки у вкладці Breakpoints and Tracepoints.

За допомогою підпункту Data Breakpoint пункту New Breakpoints меню Debug можна задавати точки зупинки за даними. При виборі цього пункту меню відкривається діалог, в якому ви можете вибрати будь-яку зі змінних вашої програми або будь-який ресурс мікроконтролера (з списку, що відкривається) і поставити точку зупинки за зверненням до цієї змінної (ресурсу).

Програма дозволяє вибрати цілий ряд умов, при яких настане зупинка програми. За замовчуванням зупинка відбувається за будь-якогозвернення до цієї змінної як у режимі читання, і у режимі записи. Ви можете вибрати іншу умову.Наприклад,за рівності змінної певного значення. Вибір умови здійснюється за допомогою поля "Break when:" ("Зупинитися якщо:") і поля "Access type:" ("Тип доступу"). Ім'я змінної вибирається за допомогою поля Location.

Діалог проставлення точок зупинки обох видів можна викликати не лише через меню. У верхній лівій частині вкладки Breakpoints and Tracepoints для цього є спеціальна кнопка.

Після того, як ви проставили всі точки зупинки, ви можете запускати програму врежимі автоматичного виконання.Для керування відладчиком у цьому режимі програма AVR Studio також має кілька спеціальних директив (див>). Запуск автоматичного виконання програми здійснюється за допомогою директиви «Пуск».

Поки програма перебуває в режимі автоматичного виконання, новий стан регістрів не відображається. Вказівник поточної команди також відсутній. У нижньому рядку головної панелі програми в правій стороні знаходиться індикатор стану. У режимі зупинки це жовтий кружечок з мінусом посередині. Зліва від нього знаходиться слово "Stopped" (Зупинено). У режимі автоматичного виконання програми жовтий кружечок перетворюється на зелений із плюсом усередині. Замість слова "Stopped" з'являється слово "Running" (Запущено).

Таблиця 1.3Директиви управління процесом налагодження