Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Отладка



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

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

МЕТОДЫ «ГРУБОЙ СИЛЫ»

Наиболее общими при отладке программы являют­ся довольно неэффективные методы «грубой силы». При­чина популярности этих методов, возможно, заключается в том, что они не требуют значительного внимания и больших умственных затрат.

Методы грубой силы можно разделить по крайней мере на три категории. 1) отладка с использованием дампа памяти; 2) отладка в соответствии с общим пред ложением «расставить операторы печати по всей про­грамме»; 3) отладка с использованием автоматических средств. Наименее эффективна из них отладка посредст­вом анализа дампа памяти (обычно необработанного отображения состояния всей памяти в восьмеричной или шестнадцатеричной форме). С ней связаны следующие проблемы

1. Сложность установления соответствия между ячейка­ми памяти и переменными в исходной программе.

2. Значительный объем выдаваемых данных, многие из которых не используются.

3. В действительности распечатка состояния памяти яв­ляется статическим отображением программы (т. е. ее состояния только в какой-то момент времени), но для на­хождения большинства ошибок должна быть изучена динамика выполнения этой программы (т. е. изменение ее состояния во времени).

4. Практически распечатка состояния памяти редко по­лучается точно в том месте программы, где находится ошибка Следовательно, дамп не отражает состояние про­граммы в точке, содержащей ошибку; действия осуществляемые в промежутке между моментом прояв­ления ошибки и моментом получения дампа, могут по­мешать локализовать ошибку.

5. Отсутствие описанных в литературе методологий вы­явления причины ошибки посредством анализа дампа памяти (многие программисты просто смотрят на дамп, очевидно, ожидая, что ошибка волшебным образом сама себя обнаружит)

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

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

2. В процессе отладки может оказаться необходимым проанализировать большое число данных.

3. Здесь требуется изменять программу при отладке; эти изменения могут скрыть ошибку, нарушить критические временные отношения или внести в программу новые ошибки.

Стоимость использования методов данной категории для больших программ или систем может быть огром­ной, но для небольших программ они вполне применимы Кроме того, они не подходят для определенных типов программ (например, операционных систем, программ управления процессами).

Методы третьей категории, использующие автомати­ческий средства отладки, подобны методам второй кате­гории, но отличаются от них в части внесения изменений в программу. Анализ динамики выполнения программы осуществляется с помощью отладочных средств языка программирования или специальных интерактивных средств отладки. Типичными языковыми средствами, ко­торые могут быть использованы, являются средства, обеспечивающие получение распечатки трасс выполнен­ных операторов, вызов подпрограмм и (или) изменений специфицированных переменных. Общая функция средств отладки — установление набора «точек прерыва­ния», вызывающих приостаиов процесса исполнения про­граммы после выполнения определенного оператора или изменения значения определенной переменной и позво­ляющих программисту, работающему за терминалом, проверять текущее состояние программы. Однако эти ме­тоды в значительной степени откосятся к методам проб и ошибок, и часто их результаты содержат чрезмерное число избыточных данных.

Общей проблемой методов «грубой силы» является то, что они игнорируют процесс обдумывания. Можно провести аналогию между отладкой программы и рассле­дованием убийства. Фактически во всех детективных ро­манах тайна раскрывается скорее посредством тщатель­ного анализа улик и объединения незначительных на пер­вый взгляд деталей, чем методами «грубой силы», такими, как блокировка улиц или осмотр имущества. На­пример, так< был раскрыт ряд убийств из оружия 44-го ка­либра в Нью-Йорке в 1976—1977 гг. Подозреваемого уда­лось задержать не с помощью методов «грубой силы» (насыхцением авиалиний и газет его портретами, выпол­ненными художником, и увеличением числа полицейских на улицах), а в результате обнаружения нескольких, ка­залось бы, незначительных улик, одной из которых был билет на автостоянку.





Дата публикования: 2015-01-26; Прочитано: 1427 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...