77358

О реальности автоматизации отладки счетных программ

Научная статья

Информатика, кибернетика и программирование

Современные отладчики позволяя осуществлять мониторинг по ходу исполнения программы помогают в локализации ошибок. Для таких систем нужна эталонная программа или эталонный запуск сохраняющий информацию о ходе выполнения программы. В частности о неправильности может сигнализировать сбой программы типа деления на ноль некорректного обращения к памяти или срабатывания ssertусловия. В случае плавающей ошибки анализируя выдачи программы при разных запусках можно попытаться обнаружить отличающиеся значения.

Русский

2015-02-02

26.5 KB

0 чел.

О реальности автоматизации отладки счетных программ

Елена Викторовна Рубилова, Сергей Владимирович Шарф

УрГУ, ИММ УрО РАН, г. Екатеринбург

Отладка — это локализация и исправление ошибок в программе. Современные отладчики, позволяя осуществлять мониторинг по ходу исполнения программы, помогают в локализации ошибок. При этом почти всё управление мониторингом и весь анализ выдаваемой информации возложены на программиста. Представляется, что для многих типов ошибок часть анализа можно делать автоматически. Существуют инструменты, которые берут часть анализа на себя для ошибок определенного типа, например, утечек памяти и использования неопределенных указателей. Автоматический анализ широко применяется в системах, поддерживающих сравнительную отладку. Для таких систем нужна эталонная программа или эталонный запуск, сохраняющий информацию о ходе выполнения программы.

Можно заметить, что отладка — всегда сравнительная. Только в обычном случае эталон имеется лишь в голове человека. При этом для начала поиска ошибки важно знать лишь о неправильности данных, выдаваемых программой. В частности, о неправильности может сигнализировать сбой программы типа деления на ноль, некорректного обращения к памяти или срабатывания assert-условия. В случае плавающей ошибки, анализируя выдачи программы при разных запусках, можно попытаться обнаружить отличающиеся значения. В других случаях можно опираться на указание программиста.

Построение зависимостей конкретного значения от других переменных — это задача довольно формальная. Её решают при компиляции, но результаты почему-то не используют в отладчиках.

Основная идея — выявление зависимостей для переменной, содержащей некорректные данные, и нахождение по ним места ошибки в программе. Для оценки сложности различных подходов к реализации идеи был разработан и частично реализован прототип сравнительного отладчика и добавлена новая команда в отладчик GDB.

Архитектурно прототип сравнительного отладчика состоит из функциональных блоков, каждый из которых можно реализовывать отдельно. Написан каркас в виде набора классов и интерфейсов Java с конкретизацией для отладки с помощью GDB программ на языке Си. Осуществляется сравнение вывода программ, нахождение несовпадения по контрольным точкам и локализация начального несовпадения. Обнаружились следующие проблемы.

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

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

Добавление новой команды в отладчик GDB продемонстрировало, что этот путь также реален. Возможность установки точки слежения с сохранением места модификации значения переменной позволяет анализировать историю изменения переменной при выборе контрольных точек при следующем запуске. Полученные результаты позволяют сделать вывод о возможности дальнейшей автоматизации процесса отладки. При этом речь идёт, прежде всего, об упрощении поиска для сложных случаев плавающих ошибок в счетных программах, в частности, параллельных.


 

А также другие работы, которые могут Вас заинтересовать

21487. Правовые и этические проблемы анестезиологии и реанимации 35 KB
  Для осущетсвления своевременной и полной коррекции метаболических сдвигов необходимы следующие мероприятия: общий анализ крови и мочи определение ЦВД исследование сыворотки крови на калий натрий хлориды осмотичность цельной крови на рО2 рСО2 рН азот мочевины гематокрит глюкозу. Из обычных лабораторных показателей наиболее показательны данные красной крови Эр Нв Нt и показатели общего белка. Если показатели красной крови свидетельствуют о явлениях гемоконцентрации необходимо стремиться к снижению этих показателей то уровень...
21488. ПРАКТИЧЕСКИЕ РЕКОМЕНДАЦИИ ДЛЯ ПРОВЕДЕНИЯ СЕАНСОВ ГБО ПРИ НЕКОТОРЫХ КРИТИЧЕСКИХ СОСТОЯНИЯХ 46.8 KB
  В процессе проведения компрессии обычно наблюдается увеличение сукровичного пятна на повязках связанное с усилением оттока раневого отделяемого. Для осущетсвления своевременной и полной коррекции метаболических сдвигов необходимы следующие мероприятия: общий анализ крови и мочи определение ЦВД исследование сыворотки крови на калий натрий хлориды осмотичность цельной крови на рО2 рСО2 рН азот мочевины гематокрит глюкозу. Из обычных лабораторных показателей наиболее показательны данные красной крови Эр Нв Нt и показатели...
21489. ПРОЕКТ ПРОТОКОЛА ЛЕЧЕНИЯ БОЛЬНЫХ С ЧЕРЕПНО-МОЗГОВОЙ ТРАВМОЙ 56.5 KB
  Основной Целью данного протокола является улучшение результатов лечения больных с ЧМТ за счет внедрения в практику наиболее эффективных методик лечения данной категории больных. Одним из основных критериев адекватности терапии является качество жизни (уровень социальной адаптации) пациента после выписки из стационара. Параллельно с основной цепью предполагается решение следующих задач...
21490. Побудова і технологічне планування приміщень магазинів 55.69 KB
  Торгові приміщення є основними в магазині. До таких приміщень відносяться: торгові зали магазинів; відділ замовлень; зал кафетерію; приміщення або площі додаткового обслуговування покупців (місця відпочинку покупців, приміщення для розкрою тканин і ін.).
21491. Реаниматологическая помощь при термической травме 21 KB
  При комбинированной травме показаниями к проведению ВЧВВ легких через микротрахеостому у таких пострадавших должны быть: 1) поражение дыхательных путей продуктами горения легкой степени + ожог верхних дыхательных путей
21492. СЕПСИС И СЕПТИЧЕСКИЙ ШОК 120 KB
  Кандидат медицинских наук старший преподаватель подполковник медицинской службы Журавлев В.:Медицина1991. 5 2Введение Сепсис остается сложной медицинской проблемой и на се годняшний день продолжает быть одной из ведущих причин ле тальности несмотря на современные открытия в патогенезе этого заболевания и принципах его лечения.
21493. СОДЕРЖАНИЕ ЭЛЕКТРОЛИТОВ И ОСМОТИЧЕСКАЯ КОНЦЕНТРАЦИЯ НЕКО 31.5 KB
  Например Американская коллегия врачей и общество критической медицины США придер живаются терминологии выработанной на совместной конферен ции по определению общих критериев при различных формах те чения сепсиса слайд N1: 1Определения сепсиса и связанных с ним нарушений ┌─────────────────┬───────────────────────────────────────────┐ │Термин │ Определение │ ├─────────────────┼───────────────────────────────────────────┤ │Септициемия...
21494. Организация анестезиологической и реаниматологической помощи на этапе квалифицированной медицинской помощи 175.5 KB
  Учреждения подразделения заготовки крови состав задачи VI. Из оснащения на ПМП имеются: инфузионные растворы полиглюкин физиологический раствор растворы глюкозы 5 одноразовые системы для переливания крови и кровезаменителей кровь универсальной группы ОIRh аппараты ИВЛ ДП9 и ДП10 кислородные ингаляторы КИ4 портативный аналгезер АП1 наборы для трахеотомии дренирования левралной полости а также лекарственные средства промедол морфин дипразин новоеаин трихлорэтилен и др. Сложнее восстановить проходимость...
21495. ВЕДЕНИЕ ЧЕРЕПНО-МОЗГОВОЙ ТРАВМЫ 54.5 KB
  Это потенциально опасно, т.к. вызывает избыточную вазоконстрикцию и приводит к ишемии. Агрессивная гипервентиляция может стать неэффективной спустя несколько часов и должна использоваться только на короткий срок в абсолютно неотложных ситуациях. В этих ситуациях с целью снижения ВЧД пациента часто используется отсоединение от респиратора и ручная вентиляция