Данная вкладка предназначена для установки точек останова и контрольных точек по доступу к элементам данных. Содержимое вкладки Breakpoints показано на рис. 2.2.
Рис. 2.2 – Вкладка Breakpoints
Точки останова программы отображаются в таблице Instruction breakpoint. В левом столбце таблицы галочкой помечаются установленные точки останова. В столбце Address отображаются их адреса, а в столбце Instruction – команды ассемблера, представленные в мнемоническом виде. Причем для изображения имен команд и операндов используется цветовая раскраска, такая же, как во вкладке Disassembly. В столбце Condition приводятся условия, при выполнении которых произойдет останов программы. Например, останов программы в первой контрольной точке (инструкция addi r1, zero, 0x1), показанной на рис.2.2, произойдет только в том случае, если содержимое регистра r1 будет больше 5.
Используя рассмотренную выше таблицу, точки останова можно удалять и добавлять. Для добавления точки, необходимо навести курсор мыши на один из заголовков столбцов таблицы, нажать правую кнопку мыши и в появившемся меню выбрать пункт “Add”. Также контрольные точки можно установить в сегменте кода, выполнив левой кнопкой мыши щелчок в поле, слева от адреса. Установленная контрольная точка будет помечена во вкладке Disassembly кружком красного цвета. Повторный щелчок левой кнопкой мыши по кружку приведет к удалению контрольной точки. Фрагмент кода с установленными контрольными точками приведен на рис. 2.3
|
|
Рис. 2.3 – Фрагмент кода с установленными контрольными точками
Контрольные точки можно установить не только в сегменте кода, но и в сегменте данных. Причем можно указать, какой тип доступа к данным будет вызывать останов программы и передачу управления отладчику. Соответственно, в зависимости от типа доступа в этой вкладке устанавливаются контрольные точки следующих типов:
· доступ по чтению к ячейке памяти – Read watchpoint;
· доступ по записи – Write watchpoint;
· доступ, как по чтению, так и по записи – Access watchpoint.
Следует заметить, что поддержку контрольных точек по доступу к данным можно включить лишь на этапе настройки процессора Nios II в SOPC Builder, путем выбора более серьезных уровней отладки.
Во вкладке Breakpoints также можно запустить программу до выполнения некоторого условия. Задание условий осуществляется в окне Run Until Expression (см. рис. 2.4), которое появляется после двойного щелчка левой кнопкой мыши под надписью Condition в нижней части вкладки. В этом окне пользователь вводит условия в соответствии с правилами, изложенными здесь же. Пусть например, выполнение программы нужно остановить, когда в регистре r2 окажется значения 0x2000040. Для этого необходимо задать условие r2 = = 0x2000040 и нажать кнопку “ OK”. Рассмотренный пример представлен на рис. 2.4. Чтобы вновь продолжить выполнение программы с учетом условий останова, необходимо нажать кнопку “Run”.
|
|
Рис. 2.4 – Условия останова