Отчет по производственной практике на базе организации ООО "Систем Сервис"


Отладка модуля с использованием инструментария среды проектирования



бет8/24
Дата16.05.2023
өлшемі107,14 Kb.
#93587
түріОтчет
1   ...   4   5   6   7   8   9   10   11   ...   24

Отладка модуля с использованием инструментария среды проектирования


Отладка — это процесс определения и устранения причин ошибок. Этим она отличается от тестирования, направленного на обнаружение ошибок. В некоторых проектах отладка занимает до 50% общего времени разработки. Многие программисты считают отладку самым трудным аспектом программирования.
Итак, процессу отладки предшествует выполнение тестового варианта. Его результаты оцениваются, регистрируется несоответствие между ожидаемым и реальным результатами. Несоответствие является симптомом скрытой причины. Процесс отладки пытается сопоставить симптом с причиной, вследствие чего приводит к исправлению ошибки. Возможны два исхода процесса отладки:
1) причина найдена, исправлена, уничтожена;
2) причина не найдена.
Во втором случае отладчик может предполагать причину. Для проверки этой причины он просит разработать дополнительный тестовый вариант, который поможет проверить предположение. Таким образом, запускается итерационный процесс коррекции ошибки.
Возможные разные способы проявления ошибок:
1) программа завершается нормально, но выдает неверные результаты;
2) программа зависает;
3) программа завершается по прерыванию;
4) программа завершается, выдает ожидаемые результаты, но хранимые данные испорчены (это самый неприятный вариант).
Характер проявления ошибок также может меняться. Симптом ошибки может быть:

  1. постоянным;

  2. мерцающим;

  3. пороговым (проявляется при превышении некоторого порога в обработке — 200 самолетов на экране отслеживаются, а 201-й — нет);

  4. отложенным (проявляется только после исправления маскирующих ошибок).
    1. Возможности отладчика среды программирования поставленной задачи


Цель отладки — найти оператор программы, при исполнении которого правильные аргументы приводят к неправильным результатам. Если место проявления симптома ошибки не является искомой аномалией, то один из аргументов оператора должен быть неверным. Поэтому надо перейти к исследованию предыдущего оператора, выработавшего этот неверный аргумент. В итоге пошаговое обратное прослеживание приводит к искомому ошибочному месту.
В разных методах прослеживание организуется по-разному. В аналитических методах — на основе логических заключений о поведении программы. Цель — шаг за шагом уменьшать область программы, подозреваемую в наличии ошибки. Здесь определяется корреляция между значениями выходных данных и особенностями поведения.
Отладчику нужно подсоединиться к другому процессу, получить доступ к его адресному пространству, к исполняемому коду для установки брейкпоинтов.
Например, как реализуются точки останова (брейкпоинты) на x86. Для этого используются программные прерывания (другое название — traps).
Отладчик ту инструкцию, на которой нужно остановиться, заменяет на байт CC (инструкция int 3). У этой инструкции специально сделан короткий однобайтовый код. Чтобы поменять машинный код отлаживаемой программы, осуществляется запись в чужое адресное пространство (того процесса, который отлаживается). Процессор по инструкции int 3 генерирует отладочное прерывание, которое перехватывается операционной системой. ОС понимает, кто какой процесс отлаживает, и уведомляет отладчик, что достигнут брейкпоинт (например, в UNIX-системах — через сигнал SIGTRAP). У отладчика хранится список его брейкпоинтов, он возвращает оригинальную инструкцию отлаживаемой программы на место.
Также отладчик может выставить Trap Flag в статусном регистре процессора x86 (ESTATUS). Это заставит процессор сгенерировать прерывание int 1 при выполнении каждой следующей инструкции. Так реализуется выполнение по шагам.


    1. Достарыңызбен бөлісу:
1   ...   4   5   6   7   8   9   10   11   ...   24




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет