Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методички к 78К0 / Лаба1-78К0.doc
Скачиваний:
89
Добавлен:
12.03.2015
Размер:
1.61 Mб
Скачать

3.2Установка и мониторинг контрольных точек (Breakpoints).

Самый удобный способ установки контрольной точки останова – это установка её в интерактивном режиме просто позиционируя курсор мыши около инструкции и выбирая команду Toggle Breakpoint” .

Выберите закладу “Utilities.c” в окне редактора. Позиционируйте указатель мыши на инструкции «get_fib (i)» и нажните команду Edit>Toggle Breakpoint. в верхнем меню, или нажмите кнопку в панели инструментов. Контрольная точка будет установлена на этой инструкции, сама инструкция будет подсвечена, а слева появится красный крестик, который указывает, что есть точка останова. Показано на рисунке 17.

Рисунок 17 – Установка контрольной точки.

Вы можете найти информацию о прохождении контрольной точки в окне «Debug Log».

Чтобы выполнить программу до контрольной точки воспользуйтесь командой Debug>Go. Или нажмите кнопку в панели инструментов.

Программа выполнится до контрольной точки, которую Вы установили. Окно «Watch» отобразит значения элементов массива «root» , а окно «Debug Log» будет содержать информацию о контрольной точке.

Для того чтобы убрать контрольную точку, щёлкнете по ней и нажмите команду Edit>Toggle Breakpoint .

3.3 Отладка в режиме дизассемблера.

Отладка с помощью C-SPY в режиме исходного кода на С/ЕС++ обычно более быстрая и прямая. Однако нас интересует низкий (физический) уровень выполнения программы, содержимое регистров и памяти. Отладка в режиме дизассемблера позволяет это сделать. Здесь каждый шаг соответствует одной команде ассемблера. C-SPY позволяет свободно переключаться между этими двумя режимами.

Итак, сперва необходимо «сбросить» вашу программу, т.е. перейти к самому началу её выполнения. Нажмите кнопку в панели инструментов. Нажмите в верхнем менюView>Disassembly для открытия окна дизассемблера, если оно не было до этого открыто.

Здесь видно, что код ассемблера соответствует текущей инструкции C, маркер указывает на текущую выполняемую инструкцию,как показано на рисунке 18.

Рисунок 18 – Отладка в режиме дизассемблера.

Попробуйте ,также как и в режиме отладки С, выполнить несколько инструкций в пошаговом режиме.

3.4 Просмотр содержимого регистров.

Окно «Register» позволяет Вам контролировать и изменять содержание регистраторов процессора. Для открытия окна регистров воспользуйтесь командой View>Register, окно представлено на рисунке 19.

Рисунок 19 – Окно содержимого регистров.

Выполните ещё несколько шагов (с помощью Step Over) и пронаблюдайте, как меняется содержимое регистров в окне «Register» . Закройте окно регистров.

3.5 Просмотр содержимого памяти.

Окно «Memory» позволяет Вам контролировать выбранные области памяти. В следующем примере, будет просмотрена область памятя, соответствующая переменной “root”.

Для открытия окна «Memory» воспользуйтесь командой меню View>Memory

Выберите закладку “Utilities.c”, чтоб сделать это окно активным и выделите “root”. Затем перетащите выделенное из окна кода С в окно памяти (Используется стандартный Drag&Drop windows, т.е. выделяется нужный фрагмет, нажимается левая кнопка мыши и удерживая кнопку фрагмент перетаскивается из одного окна в другое). Содержимое окна «Memory» будет соответствовать содержимому памяти, которое использует выбранная Вами инструкция или переменная, как показано на рисунке 20.

Рисунок 20 – Окно содержимого памяти. Рисунок 21 – Окно содержимого памяти.

Чтобы отображать содержание памяти в виде 16-разрядных данных, используйте команду «x2 Units» из раскрывающегося меню стрелки на инструментальной панели окна «Memory». Содержимое памяти отобразится как показано на рисунке 21.

Если не все модули памяти были инициализированы функцией «init_fib» кода C ,продолжайте выполнение программы по шагам, и Вы заметите, как содержимое памяти будет модифицировано. При необходимости можно изменить содержимое памяти, редактируя значения любой из ячеек в окне «Memory». Разместите курсор в нужной ячейке памяти, которое необходимо изменить и введите необходимое значение.

Закройте окно «Memory»

Соседние файлы в папке методички к 78К0