3.6.4. Контрольные точки типа watchpoints

(Руководство разработчика по микроконтроллерам семейства HCS08)

Контрольные точки наблюдения watchpoints (другое назнание — точки наблюдения) существенно расширяют возможности отладки реальной программы управления. Рассмотренные ранее способы установки контрольных точек предполагали, что они реализуются только аппаратными средствами встроенного в МК модуля отладки DBG. Однако программа отладчика True-Time Simulator & Real-Time Debugger позволяет назначить более сложные условия для наблюдения за изменением значения переменных, нежели равенство или неравенство какому-либо значению (см. 3.6.2.2). К таким условиям относятся различные типы неравенств и даже вычисление выражений с текущими значениями переменных. Для реализации таких сложных контрольных точек модуль отладки DBG пересылает текущие значения переменных, подлежащих наблюдению, в компьютер, который затем вычисляет заданные выражения. Такие действия требуют временной остановки исполнения программы управления с последующим автоматическим запуском, если условие наблюдения не выполнилось. И, как следствие, исполнение отлаживаемой программы замедляется. Причем замедление может быть не слишком заметным оператору, но для объекта управления оно может оказаться весьма существенным. Это обстоятельство следует учитывать при использовании контрольных точек наблюдения.

Контрольные точки наблюдения, т.е. watchpoints, можно разделить на три группы:

  • безусловные, событием остановки в которых является сам факт обращения к ячейке памяти данных с заданным адресом. При этом тип обращения (чтение/запись, только чтение, только запись) может быть определен дополнительно;
  • условные, событием остановки в которых является выполнение условия сравнения текущего значения переменной с заданным значением или численным значением некоторого выражения;
  • точки со счетчиком проходов, условием остановки в которых является не только выполнение одного из двух выше перечисленных типов условий, но и число событий сравнения, после которого будет осуществлен останов. Например, наблюдая за каким-либо счетчиком команд, можно назначить останов прикладной программы после прохождения 5 или 10 ее циклов.

Для того чтобы установить контрольную точку типа watchpoint, наведите мышь на желаемую переменную в окне Data или на ячейку с желаемым адресом в окне Memory и нажмите правую кнопку мыши. В контекстном меню выберите опцию Set Watchpoint (Рис.3.45, а).

Рис.3.45,а. Вызов контекстного меню для конфигурирования точки наблюдения.

Рис.3.45,б. Окно Controlpoints Configuration/

Откроется окно Controlpoints Configuration (Рис.3.45, б). В этом окне пользователь может назначить комбинацию условий для триггера контрольной точки:

  • тип доступа (чтение/запись или только чтение или только запись);
  • дополнительное условие по значению переменной;
  • число проходов контрольной точки до события останова.

В качестве примера, продемонстрируем, как установить контрольную точку, которая вызовет останов программы Примера 3.3 после того, как значение переменной counterl станет больше 10. Для этого наведите указатель мыши на переменную counter1 в окне Data, нажатием правой кномки мыши вызовите контекстное меню и выберите в нем Set Watchpoint. Далее в окне Controlpoints Configuration измените опцию Read/Write на Write и в окне дополнительных условий condition введите counter1>10 (Рис.3.46). Для проверки работы установленной watchpoint выполните сброс приложения в отладчике и начните исполнение программы заново. Через некоторое время программа остановится, и на экране вы увидете команду ассемблера, на которой произошел останов, и переменную counterl, равную 10. Кроме того, в окне Command появится запись об остановке по значению переменной counter1 (Рис.3.47). Выполняя эксперимент, наблюдайте за замедлением исполнения программы с установленной условной контрольной точкой. Это происходит потому, что данная контрольная точка организована не только средствами модуля DBG, но и с помощью дополнительных вычислений в компьютере, поскольку идентифицировать условие counter1>10 встроенный модуль отладки МК самостоятельно не может.

Рис.3.46. Манипуляции в окне Controlpoints Configuration.

Рис.3.47. Окно отладчика после остановки в контрольной точке наблюдения.


Электронные компоненты Freescale >>>
Подробнее о компании Freescale >>>