Скачиваний:
17
Добавлен:
09.09.2020
Размер:
164.83 Кб
Скачать

Отладка с помощью отладочных сообщений

•Отладка программы требует полного понимания процессов, происходящих в процессе ее выполнения.

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

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

21

Использование отладочных сообщений

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

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

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

22

Технические аспекты, связанные с отладочными сообщениями

•Отладочные сообщения могут сами по себе содержать ошибки.

•Вывод на экран буферизируется построчно, т.е. сообщения лежат в буферах до тех пор, пока не обнаружен символ '\n' (Enter – перевод каретки).

•В случае фатальной ошибки, приводящей к аварийному завершению программы (наиболее распространена ошибка сегментации (Segmentation Fault)

отладочные сообщения, находящиеся в буферах, не будут выведены.

•Часто бывает удобно иметь возможность оперативно отключать и включать отладочные выводы.

23

Программные отладчики

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

•прерывать выполнение программы на некоторой строке или при достижении конкретной строки n раз, а также при изменении некоторой переменной или присвоении ей конкретного значения;

•возобновлять выполнение программы;

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

24

Программные отладчики (2)

•выполнять исследование данных, в частности анализировать значения переменных в любой момент выполнения программы;

•изменять данные, в частности значения переменных;

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

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

•подключаться к выполняющейся программе;

25

В защиту программных отладчиков

"… Любой эффективный инструмент можно использовать правильно и неправильно. Отладчик — не исключение...

Отладчик не заменит грамотного рассуждения. Но иногда никакие мысли не заменят хороший отладчик. Наиболее эффективная комбинация — ясный ум и хороший отладчик ..."

Макконнел, С. Совершенный код.

26

Стандарт оформления кода (Code convention)

Стандарт оформления кода (стандарт кодирования, стиль программирования) (англ. coding standards, coding convention

или programming style) – набор правил и соглашений, используемых при написании исходного кода на некотором языке программирования.

Наличие общего стиля программирования:

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

•упрощает поиск синтаксических ошибок;

•облегчает понимание и поддержание исходного кода, написанного больше чем одним программистом.

27

Существующие стандарты оформления кода на языке Си

•C Programming language (K&R) [5]

•Linux Kernel Coding Style [6]

•GNU Coding Standards [7]

•Ganssle Group's Firmware Development Standard

•Netrino Embedded C Coding Standard

•Micrium C Coding Standard

•…

28

Соглашение об оформлении кода на языке Си

•Отступы

•Расположение фигурных скобок

•Имена переменных

•Комментарии

29

Отступы (http://en.wikipedia.org/wiki/Indent_style)

•используются для форматирования исходного кода программы

•применяются для улучшения читабельности.

•предназначены только для программистов

•компилятор языка Си игнорирует такие разделители, как пробел (Space), табуляция (Tab) и перевод на новую строку (Enter).

30