Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на госэкзамен / Тест+отлад.doc
Скачиваний:
39
Добавлен:
02.05.2014
Размер:
202.24 Кб
Скачать
        1. Отладка

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

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

3.1. Общее описание ошибок программ

В зависимости от этапа разработки, на котором проявляются ошибки, различают:

  • синтаксические ошибки, фиксируемые компилятором, транслятором, интерпретатором);

  • ошибки компоновки, выявляемые компоновщиком (редактором связей) при объединении модулей;

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

Из перечисленных наиболее простыми являются синтаксические ошибки, т.к. транслятор часто указывает место локализации ошибки и развернутый комментарий о характере ошибки. Следует иметь в виду, что чем лучше формализованы правила синтаксиса языка, тем больше ошибок из общего количества можно обнаружить в процессе компиляции. В связи с этим свойством говорят о языках с защищенным синтаксисом и с незащищенным синтаксисом. К первым, безусловно, относится Pascal, а ко вторым – Си со всеми его модификациями. Чего стоит хотя бы возможность выполнения присваивания в условном операторе Си, например:

if (c=n) x=0; /* (здесь c присваивается значение n, после чего результат операции сравнивается с нулем. Если программист хотел выполнить присваивание c=n, то эта ошибка будет выявлена только при тщательном тестировании программы).

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

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

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

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

  • “зависание” компьютера;

  • несовпадение полученных результатов тестирования с ожидаемыми.

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

Сложность отладки увеличивается из-за влияния следующих факторов:

  • возможность взаимовлияния ошибок;

  • возможность одинакового проявления разных ошибок;

  • отсутствие повторяемости проявлений некоторых ошибок от запуска к запуску – так называемые стохастические ошибки;

  • иногда при внесении операторов отладки исчезает или изменяется внешнее проявление ошибки.

Из всех этапов проектирования логики программных модулей этап отладки является наименее формализованным. В нем выделяют две задачи:

  • определение природы ошибки;

  • исправление ошибки.

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

Ошибки выполнения

Ошибки определения данных

Ошибки накопления погрешностей

о

Логические ошибки

шибки передачи не учитывается

ошибки ограничение

преобразования разрядной сетки

ошибки перезаписи не применялись

неправильные данные способы

Соседние файлы в папке Ответы на госэкзамен