СодержаниеСодержание
Содержание 2
1. Введение 3
1.1. Глоссарий 3
1.2. Описание предметной области 3
1.3. Неформальная постановка задачи 4
1.4. Обзор существующих методов решения 4
2. Требования к окружению 4
3. Архитектура системы 4
4. Проект 4
4.1. Средства реализации 4
4.2. Модули и алгоритмы 4
Заключение 5
Список литературы 61. Введение
1.1. Глоссарий
Free Pascal Compiler (FPC) [1] – это свободно распространяемый компилятор языка Паскаль с открытыми исходными кодами. FPC — кроссплатформенный инструмент, под-держивающий огромное количество платформ. Среди них — AmigaOS, DOS, Linux, *BSD, OS/2, MacOS(X) и Win32.
Lazarus [2]– это библиотеки классов Free Pascal для эмуляции Delphi. Его цель — соз-дание среды быстрой разработки программ с высокоразвитым графическим пользователь-ским интерфейсом.
GNU Debugger (gdb) – переносимый отладчик проекта GNU, который работает на мно-гих UNIX-подобных системах и умеет производить отладку многих языков программирова-ния, включая Си, C++, и Фортран.
1.2. Описание предметной области
Разработка, отладка, модификация и сопровождение больших программных систем яв-ляется весьма сложной задачей. Для поддержки разработки больших программ требуются качественные многофункциональные отладчики. Существует огромное количество разнооб-разных отладчиков, приспособленных под различные применения. Их основная цель - облег-чить поиск всевозможных ошибок в программе.
Для обнаружения ошибок в программах применяют статические и динамические ана-лизаторы. Принципы их действия существенно различаются. В настоящее время, в основном применяются динамический анализ.
Динамический анализатор - это инструмент, который позволяет производить отладку программы в процессе ее исполнения. Его работа в основном базируется на установке в про-грамме контрольных точек останова различных видов. Динамические отладчики позволяют выполнить основные четыре функции:
• запуск программы;
• установка условных и безусловных точек останова;
• отображение данных, использующихся в отлаживаемой программе;
• внесение изменений в данные программы.
Примером существующих динамических отладчиков являются такие отладчики как SoftIce, gdb, jdb и многие другие.
Статический анализатор – это инструмент, который использует информацию, накоп-ленную в результате анализа программы, реализуемого без ее исполнения, для обнаружения ошибок, а также подозрительных мест в программе.
Статические анализаторы могут обнаруживать следующие типы ошибок:
• выход индекса за границы массива,
• деление на ноль,
• извлечение корня из отрицательного числа,
• разыменование нулевого указателя,
• выход за границы отведенной памяти,
• отсутствие инициализации переменной,
• неиспользуемое значение,
• неправильное приведение динамического типа,
• использование «мертвой» переменной, которая перестала существовать,
• переполнение при арифметических операциях и при приведении типа,
• нулевое число повторений цикла, бесконечные циклы и рекурсии,
• выделение памяти размером меньшим либо равным нулю и др.
Одним из видов статического анализа является анализ потока управления (control flow analysis), обнаруживаемые на его базе ошибки, определяются как нарушенияВведение1. Введение
1.1. Глоссарий
Free Pascal Compiler (FPC) [1] – это свободно распространяемый компилятор языка Паскаль с открытыми исходными кодами. FPC — кроссплатформенный инструмент, под-держивающий огромное количество платформ. Среди них — AmigaOS, DOS, Linux, *BSD, OS/2, MacOS(X) и Win32.
Lazarus [2]– это библиотеки классов Free Pascal для эмуляции Delphi. Его цель — соз-дание среды быстрой разработки программ с высокоразвитым графическим пользователь-ским интерфейсом.
GNU Debugger (gdb) – переносимый отладчик проекта GNU, который работает на мно-гих UNIX-подобных системах и умеет производить отладку многих языков программирова-ния, включая Си, C++, и Фортран.
1.2. Описание предметной области
Разработка, отладка, модификация и сопровождение больших программных систем яв-ляется весьма сложной задачей. Для поддержки разработки больших программ требуются качественные многофункциональные отладчики. Существует огромное количество разнооб-разных отладчиков, приспособленных под различные применения. Их основная цель - облег-чить поиск всевозможных ошибок в программе.
Для обнаружения ошибок в программах применяют статические и динамические ана-лизаторы. Принципы их действия существенно различаются. В настоящее время, в основном применяются динамический анализ.
Динамический анализатор - это инструмент, который позволяет производить отладку программы в процессе ее исполнения. Его работа в основном базируется на установке в про-грамме контрольных точек останова различных видов. Динамические отладчики позволяют выполнить основные четыре функции:
• запуск программы;
• установка условных и безусловных точек останова;
• отображение данных, использующихся в отлаживаемой программе;
• внесение изменений в данные программы.
Примером существующих динамических отладчиков являются такие отладчики как SoftIce, gdb, jdb и многие другие.
Статический анализатор – это инструмент, который использует информацию, накоп-ленную в результате анализа программы, реализуемого без ее исполнения, для обнаружения ошибок, а также подозрительных мест в программе.
Статические анализаторы могут обнаруживать следующие типы ошибок:
• выход индекса за границы массива,
• деление на ноль,
• извлечение корня из отрицательного числа,
• разыменование нулевого указателя,
• выход за границы отведенной памяти,
• отсутствие инициализации переменной,
• неиспользуемое значение,
• неправильное приведение динамического типа,
• использование «мертвой» переменной, которая перестала существовать,
• переполнение при арифметических операциях и при приведении типа,
• нулевое число повторений цикла, бесконечные циклы и рекурсии,
• выделение памяти размером меньшим либо равным нулю и др.
Одним из видов статического анализа является анализ потока управления (control flow analysis), обнаруживаемые на его базе ошибки, определяются как нарушенияЛитератураСписок литературы
1. Официальный сайт компилятора Free Pascal. http://www.freepascal.org/
2. Официальный сайт проекта Lazarus. http://lazarus.freepascal.org/
3. Википедия — свободная энциклопедия. http://ru.wikipedia.org
4. Каличкин С. В., Обзор средств статической отладки программ, Новосибирск, 2004
|
|