СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Тестирование ИС Практическая работа №7

Категория: Прочее

Нажмите, чтобы узнать подробности

Просмотр содержимого документа
«Тестирование ИС Практическая работа №7»

Практическое занятие № 7 Использование инструментальных средств на этапе отладки программного модуля

Цель работы: ознакомление с аппаратными и программными средствами отладки ПО; приобретение навыков отладки программ под управлением отладчика.

Основные сведения

Особенность отладки ПО устройств на базе встраиваемых МП (в том числе однокристальных микроконтроллеров) состоит в отсутствии в их составе развитых средств для реализации пользовательского интерфейса и ограниченных возможностях системного ПО. В то же время именно для встраиваемых микропроцессорных систем этап отладки является чрезвычайно ответственным, так как для них характерна тесная взаимосвязь работы ПО и аппаратных средств.

Взаимодействие микропроцессора (микроконтроллера) с датчиками и исполнительными устройствами происходит путём передачи данных через регистры периферийных устройств (регистры ввода-вывода). Отдельные разряды таких регистров задают режимы работы периферийных устройств, имеют смысл готовности к обмену, завершения передачи данных и т. п. Состояние этих разрядов может устанавливаться как программно, так и аппаратно. При отладке ПО часто приходится переходить на уровень межрегистровых передач и проверять правильность установки отдельных разрядов. Кроме того, на этапе отладки может производиться оптимизация алгоритма, нахождение критических участков кода и проверка надёжности разработанного ПО.

Для решения указанных задач применяются аппаратные и программные средства отладки ПО


Рисунок14

К аппаратным средствам отладки относятся аппаратные эмуляторы и проверочные модули.

Аппаратные эмуляторы предназначены для отладки программного и аппаратного обеспечения микропроцессорных систем в режиме реального времени. Они работают под управлением «ведущего» компьютера, оснащённого специальным ПО – программами- отладчиками (см. ниже). Основными видами аппаратных эмуляторов являются:

  • Внутри схемные эмуляторы или эмуляторы-приставки, замещающие микропроцессор в отлаживаемой системе;

  • Внутри кристальные эмуляторы, представляющие собой одно из внутренних устройств микропроцессора.

Внутрисхемный эмулятор (In-CircuitEmulator, ICE) – это устройство, содержащее аппаратный имитатор процессора и схему управления имитатором. При отладке с помощью эмулятора микропроцессор извлекается из отлаживаемой системы, на его место подключается контактная колодка, количество и назначение контактов которой идентично выводам замещаемого микропроцессора.

С помощью гибкого кабеля контактная колодка соединятся с

эмулятором. Управление процессом отладки осуществляется с персонального компьютера. Эмуляторам-приставкам присущи следующие недостатки: высокая стоимость, недостаточная надёжность, высокое энергопотребление, влияние на электрические характеристики цепей, к которым подключается эмулятор.

Рисунок15

Внутрикристальные эмуляторы (On-ChipEmulator) позволяют проводить отладку программ без извлечения микропроцессора из системы. При этом осуществляется непосредственный контроль за выполнением программы, так как средства внутрикристальной отладки обеспечивают прямой доступ к регистрам, памяти и периферии микропроцессора. Наиболее распространённым средством внутрикристальной отладки является последовательный интерфейс IEEE 1149.1, известный как JTAG (JointTestActionGroup – Объединённая рабочая группа по автоматизации тестирования). Последовательный отладочный порт JTAG микропроцессора с помощью специального устройства сопряжения подключается ккомпьютеру, чем обеспечивается доступ к отладочным средствам процессора. Такой способ отладки также называют сканирующей эмуляцией. Достоинствами этого способа являются возможность выполнения различных действий на процессоре без его изъятия из системы, использование малого числа выводов процессора и поддержка его максимальной производительности без изменения электрических характеристик системы.

Рисунок16

Проверочные модули предназначены для быстрой отладки программного обеспечения в реальном масштабе времени. Проверочные модули бывают двух видов: стартовые наборы и отладочные платы.

Стартовые наборы (StarterKit) предназначены для обучения работе с конкретным микропроцессором. Стартовый набор позволяет изучить характеристики микропроцессора, отладить не слишком сложные программы, выполнить несложное макетирование, проверить возможность применения микропроцессора для решения конкретной задачи. В состав стартового набора входят плата, ПО и комплект документации. На плате устанавливаются микропроцессор,устройствозагрузкипрограмм,последовательныеилипараллельныепорты, разъёмы для связи с внешними устройствами и другие элементы. Плата подключается к компьютеру через параллельный или последовательный порт. Стартовые наборы удобны на начальном этапе работы с микропроцессором.

Отладочные платы (EvaluationBoard) предназначены для проверки разработанного алгоритмавреальныхусловиях.Онипозволяютпроводитьотладкуиоптимизациюалгоритма с использованием установленной на плате периферии, а также изготовить на базе платы законченное устройство. Обычно на плате размещаются микропроцессор, схемы синхронизации, интерфейсы расширения памяти и периферии, схема электропитания и др. Плата подключается к компьютеру через параллельный или последовательный порт или непосредственно устанавливается в слот PCI.

Основными программными средствами отладки являются симуляторыи отладчики.

Симуляторы (simulator) или симуляторы системы команд представляют собой программы, имитирующие работу того или иного процессора на уровне его команд. Симуляторы обычно используются для проверки программы или её отдельных частей перед испытанием на аппаратных средствах.

Отладчики (debugger) представляют собой программы, предназначенные для анализа работы созданного программного обеспечения. Можно указать следующие возможности отладчиков.

  1. Пошаговое выполнение. Программа выполняется последовательно, команда за командой, с возвратом управления отладчику после каждого шага.

  2. Прогон. Выполнение программы начинается с указанной команды и осуществляется без остановки до конца программы.

  3. Прогон с контрольными точками. При выполнении программы происходит останов и передача управления отладчику после выполнения команд с адресами, указанными в списке контрольных точек.

  4. Просмотр и изменение содержимого регистров и ячеек памяти. Пользователь имеет возможност ьвыводить на экран и изменять (модифицировать) содержимое регистров и ячеек памяти.

Отладчики ПО встраиваемых микропроцессоров обычно используются совместно с внутрисхемными или внутрикристальными эмуляторами, а также могут работать в режиме симулятора. Некоторые отладчики позволяют также выполнять профилирование, т. е. определять действительное время выполнения некоторого участка программы. Иногда функцию профилирования выполняет специальная программа – профилировщик (profiler).


Ход работы

Создание проекта

Сначала вы создадите проект консольного приложения .NET Framework. Тип проекта включает в себя все необходимые шаблонные файлы, прежде чем вы что-либо добавите!

  1. Откройте Visual Studio. Если окно запуска не открыто, выберите ФайлОкно запуска.

  2. В окне запуска выберите Создать проект.

В окне Создание нового проекта введите console в поле поиска. Затем выберите C# в списке языков, а затем выберите Windows из списка платформ.

После применения фильтров языка и платформы выберите шаблон консольного приложения, а затем выберите Далее.



 Примечание

Если шаблон консольного приложения не отображается, вы можете установить его из окна создания нового проекта. В сообщении "Не можете найти то, что ищете?" выберите ссылку "Установить больше инструментов и функций". Затем в установщике Visual Studio выберите рабочую нагрузку разработки десктопных приложений .NET.

  1. В окне Настройка нового проекта введите GetStartedDebugging в поле имени проекта . Затем выберите Далее.

  1. В окне Дополнительные сведения убедитесь, что .NET 8.0 выбран в раскрывающемся меню Framework, а затем выберите Создать.

Visual Studio открывает новый проект.

Создание приложения

В Program.csзамените весь код по умолчанию следующим кодом:

C#

using System;


class ArrayExample

{

static void Main()

{

char[] letters = { 'f', 'r', 'e', 'd', ' ', 's', 'm', 'i', 't', 'h'};

string name = "";

int[] a = new int[10];

for (int i = 0; i

{

name += letters[i];

a[i] = i + 1;

SendMessage(name, a[i]);

}

Console.ReadKey();

}


static void SendMessage(string name, int msg)

{

Console.WriteLine("Hello, " + name + "! Count to " + msg);

}

}

Запустите отладчик!

В основном здесь мы используем сочетания клавиш, так как это быстрый способ выполнения команд отладчика. Также отмечаются эквивалентные команды, такие как панели инструментов или команды меню.

  1. Чтобы запустить отладчик, выберите F5 или нажмите кнопку "Цель отладки" на стандартной панели инструментов или нажмите кнопку "Начать отладку" на панели инструментов отладки или выберите "ОтладкаНачать отладку" в строке меню.

F5 запускает приложение с отладчиком, подключенным к процессу приложения. Так как мы не сделали ничего специального для изучения кода, приложение запускается до завершения, и вы видите выходные данные консоли.

Командная строка Windows

Hello, f! Count to 1

Hello, fr! Count to 2

Hello, fre! Count to 3

Hello, fred! Count to 4

Hello, fred ! Count to 5

Hello, fred s! Count to 6

Hello, fred sm! Count to 7

Hello, fred smi! Count to 8

Hello, fred smit! Count to 9

Hello, fred smith! Count to 10

  1. Чтобы остановить отладчик, выберите Shift+F5или нажмите кнопку Остановить отладку на панели инструментов отладки, или выберите ОтладкаОстановить отладку в строке меню.

  1. В окне консоли выберите любой ключ, чтобы закрыть окно консоли.

Установка точки останова и запуск отладчика
  1. В цикле for функции Main установите точку останова, щелкнув левое поле в следующей строке кода:

name += letters[i];

Появится красный круг, в котором устанавливается точка останова.

Точки останова являются важной функцией надежной отладки. Вы можете задать точки останова, в которых Visual Studio приостанавливает выполнение кода, чтобы просмотреть значения переменных или поведение памяти или узнать, выполняется ли ветвь кода.

  1. Чтобы начать отладку, выберите F5 или нажмите кнопку "Цель отладки" на стандартной панели инструментов или нажмите кнопку "Запуск отладки" на панели инструментов "Отладка" или выберите ОтладкаЗапуск отладки в строке меню. Приложение запускается, а отладчик останавливается на строке кода, где устанавливается точка останова.

Желтая стрелка указывает на инструкцию, на которой отладчик приостановился. Выполнение приложения приостановлено в том же месте, при этом инструкция еще не выполнена.

Если приложение не запущено, F5 запускает отладчик, который запускает приложение, пока не достигнет первой точки останова. Если приложение приостановлено в точке останова, F5 продолжит работу приложения, пока не достигнет следующей точки останова.

Точки останова — это полезная функция, когда вы знаете строку или раздел кода, которые необходимо подробно изучить.

Навигация по коду и инспекция данных с помощью информационных подсказок
  1. Хотя выполнение кода приостановлено в инструкции name += letters[i], наведите указатель мыши на переменную letters, чтобы увидеть подсказку данных с размером массива и типом элемента, char[10].

 Примечание

Одним из наиболее полезных функций отладчика является возможность проверки переменной. Часто при попытке отладки проблемы вы пытаетесь выяснить, имеют ли переменные значения, ожидаемые в определенное время. Проверка с помощью подсказок по данным — хороший способ сделать это.

  1. Разверните переменную letters, чтобы просмотреть все его элементы массива и их значения.

  1. Наведите указатель мыши на переменную name, чтобы увидеть текущее значение, которое является пустой строкой.

  2. Чтобы перейти в отладчике к следующей инструкции, выберите F10 или нажмите кнопку "Шаг с обходом" на панели инструментов отладки, или выберите ОтладкаШаг с обходом в строке меню. Выберите F10 ещё дважды, чтобы пройти вызов метода SendMessage.

F10 продвигает отладку без входа в функцию или метод, даже если их код все равно выполняется. Таким образом, мы пропустили отладку кода в методе SendMessage, так как на данный момент это нас не интересует.

  1. Чтобы выполнить итерацию по циклу for несколько раз, выберите F10 многократно. Во время каждой итерации цикла останавливайтесь на точке останова, а затем наведите указатель мыши на переменную name, чтобы проверить её значение во всплывающей подсказке.

Значение переменной изменяется с каждой итерацией цикла for, отображая значения f, а затем fr, а затем fre и т. д. Чтобы ускорить переход отладчика через цикл, выберите F5. Это позволит перейти к контрольной точке вместо следующей инструкции.

  1. Пока выполнение кода приостановлено в цикле for метода Main, выберите F11или нажмите кнопку Шаг в (Step Into) на панели инструментов отладки, или выберите из строки меню Шаг в (Step Into), пока не перейдете к вызову метода SendMessage.

Отладчик должен быть приостановлен в этой строке кода:

SendMessage(name, a[i]);

  1. Чтобы перейти к методу SendMessage, снова выберите F11.

Желтый указатель перемещается в метод SendMessage.

F11 помогает более подробно изучить поток выполнения кода. Чтобы перейти к методу из вызова метода, выберите F11. По умолчанию отладчик пропускает вход в непользовательские методы. Завершив отладку метода SendMessage, вы будете готовы вернуться к циклу for метода main.

  1. Чтобы выйти из метода SendMessage, выберите Shift+F11или нажмите кнопку Шаг выхода на панели инструментов отладки, или выберите ОтладкаШаг выхода в строке меню.

шаг выхода возобновляет выполнение приложения и перемещает отладчик до тех пор, пока текущий метод или функция не возвращается.

Вы увидите желтый указатель обратно в цикл for метода Main, приостановленный при вызове метода SendMessage.

Навигация по коду с помощью "Выполнить до щелчка"
  1. Выберите F5, чтобы перейти к точке останова еще раз.

  2. В редакторе кода наведите указатель мыши на вызов метода Console.WriteLine в методе SendMessage, пока не появится кнопка "Run to Click". Подсказка на кнопке показывает "Запустить выполнение до этого места".

  1. Нажмите кнопку Запустить, чтобы нажать кнопку. Кроме того, с курсором в инструкции Console.WriteLine выберите CTRL+F10. Или щелкните правой кнопкой мыши вызов метода Console.WriteLine и выберите Выполнить до курсора в контекстном меню.

Отладчик переходит к вызову метода Console.WriteLine.

Использование кнопки "Запустить" для нажатия аналогично настройке временной точки останова и удобно быстро перемещаться в видимой области кода приложения в открытом файле.

Быстро перезапустите приложение

Чтобы повторно запустить приложение с самого начала в отладчике, выберите CTRL+SHIFT+F5 или нажмите кнопку Перезапуск на панели инструментов отладки или выберите Отладкаперезапустить в строке меню.

Перезапуск останавливает отладчик, а затем перезапускает его за один шаг. Когда отладчик перезапускается, он доходит до первой точки останова, которая является точкой останова, ранее установленной внутри цикла for, а затем приостанавливается.

Проверка переменных с помощью окон "Авто" и "Локальные"

При отладке окна Автос и Локалы отображают значения переменных. Окна доступны только во время сеанса отладки. В окне Автосодержимое отображаются переменные, используемые на текущей строке, на которой находится отладчик, и на предыдущей строке. В окне "Locals" отображаются переменные, определенные в локальной области, которая, как правило, соответствует текущей функции или методу.

  1. Пока отладчик приостановлен, просмотрите окно 'Автоматически' в нижней части редактора кода.

Если окно Autos закрыто, выберите Ctrl+D, A или выберите DebugWindowsAutos в строке меню.

  1. Пока отладчик остается приостановленным, просмотрите окно Локальные на вкладке рядом с окном Авто.

Если окно локальных закрыто, выберите CTRL+D, L или выберите ОтладкаWindowsЛокальные.

  1. В окне Локальные разверните переменную letters, чтобы просмотреть элементы массива и их значения.

Установка часов

Вы можете указать переменную или выражение, за которыми вы хотите наблюдать, исполняя код, добавив их в окно Watch.

  1. Пока отладчик приостановлен, щелкните правой кнопкой мыши переменную name и выберите Добавить в наблюдение.

Окно "Просмотр" открывается в нижней части редактора кода по умолчанию.

  1. Теперь, когда вы установили слежение за переменной name, пройдитесь по своему коду, чтобы увидеть, как значение переменной name изменяется при каждой итерации цикла for.

В отличие от других окон переменных, в окне всегда отображаются переменные, которые вы просматриваете. Переменные, вышедшие за пределы области видимости, отображаются как недоступные.

Проверка стека вызовов

стек вызовов поможет вам понять поток выполнения приложения, показывая порядок вызова методов и функций.

  1. Пока отладчик приостановлен в цикле for, просмотрите окно стека вызовов , которое по умолчанию открывается в правой нижней панели редактора кода.

Если окно стека вызовов закрыто, выберите CTRL+D, C или выберите ОтладкаWindowsстек вызовов в строке меню.

В окне стека вызовов вы видите желтый указатель, указывающий на текущий метод Main.

  1. Выберите F11 несколько раз, пока отладчик не приостановит выполнение в методе SendMessage.

В верхней строке окна стека вызовов отображается текущая функция, которая является методом SendMessage. Вторая строка показывает, что метод SendMessage был вызван из метода Main.

 Примечание

Окно стека вызовов похоже на окно отладки в некоторых средах разработки, таких как Eclipse.

В окне Стек вызовов можно дважды щелкнуть по строке кода, чтобы перейти к этому исходному коду, что изменяет текущую область видимости, проверяемую отладчиком. Это действие не перемещает отладчик.

Вы также можете использовать меню правой кнопкой мыши из окна стек вызовов для выполнения других действий. Например, можно вставить точки останова в указанные функции, выполнить отладку с помощью Выполнить до курсора или перейти к исходному коду.

Контрольные вопросы

    1. Классификация средств отладки прикладного ПО встраиваемых МП (микропроцессорных устройств)

    2. Виды и особенности аппаратных средств отладки ПО.

    3. Основные функции программных средств отладки ПО.

    4. Пошаговое выполнение программы и его возможности.

    5. Особенности прогона программы с контрольными точками.

    6. Контрольные точки: типы, назначение, использование.