Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Отладка программных продуктов
Отладка — процесс локализации и устранения ошибок. Отладка программы — процесс творческий и плохоформализуемый. Тем не менее, основной идее отладки (базирующейся на анализе данных) можно придать вид следующего алгоритма: 1) Следует начать с изучения уже доступных исходных и результирующих данных. 2) Сформулировать некоторую гипотезу, которая объясняет получение таких результирующих данных. 3) Подготовить новые исходные данные и провести эксперимент, который позволит доказать или опровергнуть гипотезу. Обратим особое внимание на два достаточно простых случая отладки. Их анализ может быть достаточно легко выполнен при помощи пошагового отладчика. 1) Если программа прекращает работу с порождениями "предсмертного дампа памяти" (core-файла), то практически любой отладчик позволит по этому дампу восстановить динамический стек вызовов процедур и локализовать место проблемы. 2) Если программа выдает некорректное сообщение, то можно получить динамический стек в отладчике, взяв за точку останова вызов функции выдачи сообщения. Стек может дать достаточное количество информации к размышлению.
Средства отладки в интегрированных системах программирования включают: · Средства пошагового выполнения программы и трассировки (Step over / Trace into) · Использование точек останова (Breakpoints) · Просмотр значений переменных (Watch) · Интерактивное изменение значений переменных (Evaluate / modity) · Просмотр содержимого стека (Call stack) · Просмотр содержимого регистров (Register)
В процессе разработки и выполнения программ возникают следующие виды ошибок: – Синтаксические Вызываются нарушением синтаксиса языка и выявляются и устраняются при компиляции программы, т.е. компилятор выдает сообщение и показывает в тексте программы место, где возникла ошибка. – Логические Это следствие реализации неправильного алгоритма и проявляются при выполнении программы. Наличие таких ошибок не приводит к выдаче пользователю сообщений или прекращению работы программы, но программа будет работать неправильно. – Динамические Возникают при выполнении программы и являются следствием неправильной работы инструкций, процедур, функций, а также операционной системы. Такие ошибки называются ошибками времени выполнения. Например, при делении на переменную, которая в процессе выполнения программы могла получить нулевое значение. Исключения генерируются компонентами Delphi для различных событий, таких как присвоение свойству значения, выходящего за допустимые пределы, или попытка индексировать несуществующий элемент массива. Исключительная ситуация возникает при выполнении некорректной математической операции, такой как деление на ноль. Потенциально любой оператор программы может стать причиной исключительной ситуации. Однако некоторые операторы относительно безопасны, и ваша задача при написании устойчивой программы состоит в основном в том, чтобы правильно решить, для каких операторов нужна защита, а какие безопасны. Вот некоторые типы операций, которые могут привести к исключительным ситуациям: – обработка файла; – выделение памяти; – работа с ресурсами системы; – работа с объектами и формами, создаваемыми во время выполнения программы; – аппаратные конфликты и конфликты операционных систем. При написании программы необходимо предвидеть возможность возникновения динамических ошибок и предусмотреть их обработку. Для обработки динамических ошибок введено понятие исключения, которое представляет собой нарушение условий выполнения программы, вызывающее прерывание или полное прекращение ее работы. Обработка исключения состоит в нейтрализации вызвавшей его динамической ошибки. В Delphi для обработки динамических ошибок в выполняемый файл приложения встраиваются специальные фрагменты кода, предназначенные дл реагирования исключений. Механизмы обработки ошибок в Delphi инкапсулированы в класс Exception – базовый класс. Всего имеется сотни классов исключения: EAbort Аварийное завершение работы без диалогового окна EAbstractError Абстрактная ошибка метода AssertionFailed Утверждают неудавшийся запрос EBitsError Булев массив ошибок ECommonCalendarError Календарная ошибка EDateTimeError Ошибка DateTime EMonthCalError Ошибка месяца EConversionError Вызывается Convert EConvertError Ошибка конвертирования объекта EDatabaseError Ошибка базы данных EExternal Ошибка аппаратных средств/Windows EAccessViolation Нарушение прав доступа EControlC Произошло аварийной завершение работы пользователем EExternalException Другая Внутренняя ошибка EIntError Целочисленная ошибка EDivByZero Деление на ноль EIntOverflow Переполнение целого числа ERangeError Вне диапазона значений EMathError Ошибка с плавающей запятой EInvalidArgument Плохое значение аргумента EInvalidOp Несоответствующая операция EOverflow Значение слишком большое EUnderflow Значение слишком маленькое EZeroDivide Деление на ноль EStackOverflow Серьёзная проблема Delphi EHeapException Проблемы динамической памяти EInvalidPointer Плохой указатель памяти EOutOfMemory Нет возможности распределить память EInOutError Ошибка ввода/вывода EInvalidCast Ошибка произведенная объектом EInvalidOperation Плохая операция компонента EMenuError Ошибка пункта меню EOSError Ошибка операционной системы EParserError Ошибка синтаксического анализа EPrinter Ошибка принтера EPropertyError Ошибка свойства класса EPropReadOnly Недопустимое обращение к свойству EPropWriteOnly Недопустимое обращение к свойству EThread Ошибка потока EVariantError Различная ошибка Для обработки исключений в приложении есть один глобальный обработчик и несколько специализированных процедур-обработчиков, реагирующих на соответствующие исключения. Каждое исключение обрабатывает свой специализированный локальный обработчик. Исключение, которое не имеет своего локального обработчика, обрабатывается глобальным обработчиком приложений. Date: 2016-07-18; view: 1018; Нарушение авторских прав |