Ада-95. Компилятор GNAT


         

Директивы компилятора для отладки


GNAT предусматривает две директивы компилятора, которые могут быть полезны при отладке программ:

Директива

Описание

pragma Assert (условие);  -  Вставить условие контрольной проверки
pragma Debug (имя_процедуры);  -  Указание необходимости выполнения вызова отладочной процедуры

Следует заметить, что для активации использования этих директив, необходимо указать опцию командной строки компилятора -gnata

при компиляции исходных текстов.

В тех случаях, когда при компиляции исходных текстов опция -gnata не указана, GNAT будет просто игнорировать присутствие этих директив.

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

Директива компилятора Assert

позволяет осуществлять проверку истинности некоторых условий в процессе выполнения программы.

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

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

Примером использования директивы Assert может служить следующее:

pragma Assert (Screen_Height = 24);

Здесь, если значение переменной Screen_Height не будет равно 24, то будет возбуждено исключение ASSERT_ERROR.

Директива компилятора Debug позволяет осуществлять вызов процедуры, которая предназначена для отладки.

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

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

Например:

X := 5; pragma Debug (Print_To_Log_File( "X is now" & X'Img ));



Содержание  Назад  Вперед





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