77358

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

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

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

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

Русский

2015-02-02

26.5 KB

0 чел.

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

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

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

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

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

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

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

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

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

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

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


 

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

29240. Эпоха модерна в европейской культуре 50 KB
  Необходимо отметить две важные черты культуры 19 в. Совершенствование институционных форм культуры т. объединение разрозненных прежде академических учреждений культуры: музеев библиотек театров художественных выставок. Важнейшим достижением культуры 19 в.
29241. Место и роль науки в культурном процессе 28.5 KB
  Для науки характерен системный подход к исследованию объекта. По характеру и методу исследования она делится на: естественные науки общественные науки: технические науки. В структуре науки выделяются два уровня организации знания.
29242. Ницше (Nietzsche) Фридрих 35.5 KB
  Центральное место в философскокультурологической концепции Ницше занимает понятие жизнь основу которой образует воля. Однако взгляды Ницше на протяжении творческой деятельности претерпевали определенную эволюцию. По Ницше понять импульсы воли выразить ее характер невозможно с помощью разума и науки. Искусство представляется Ницше как дополнения и завершение бытия.
29243. Культурологическое образование в России 32 KB
  Главная сложность введения культурологии в систему высшего образования заключалась в том что отечественная культурологическая наука представляла и до сих пор представляет собой полностью эклектическую конструкцию. Первые шаги в организации специального культурологического образования были предприняты в одном из первых негосударственных вузов страны Российском открытом университете где в 1990 началось формирование факультета и кафедры искусствознания и культурологии. В 1995 на базе этого факультета была создана Высшая школа...
29244. Культура 41.5 KB
  Это совпадение имени симптоматично оно лишний раз подчеркивает единство культуры народов включенных в орбиту европейского мира является знаком своеобразной культурной общности всех разноплеменных носителей европейских языков. Понятие цивилизация воспринимается как синоним слова культура В немецкой традиции впервые было сформулировано и стало весьма популярным представление о различии культуры и цивилизации. Со второй половины Х1Х века идея противопоставления культуры и цивилизации приобрела особое значение и...
29245. Религия как культурный феномен 30.5 KB
  Именно религия дает ответ на главный вопрос всех ценностнонормативных систем. Религия формирует у человека чувство независимости и уверенности в себе.Дюркгейм сравнивал религию в качестве интегратора социокультурных систем с клеем поскольку именно религия помогает людям осознавать себя как духовную общность скрепленную общими ценностями и общими целями.
29246. Феномен Ренессанса 37 KB
  Расцвет культуры Ренессанса приходится на XV XVI вв. В этой связи культура Ренессанса рассматривается как отрицание средневековья как антитеза средневековой схоластике. Такова самая общая в значительной мере поверхностная характеристика Ренессанса.
29247. Феномены русской, российской, советской культуры 52.5 KB
  Проблема самосознания русской культуры. Этапы становления русской идеи. Формирование русской национальной культуры на протяжении веков проходило в русле этнического разнообразия преодоления разобщенности в условиях интенсивного воздействия извне: соединение Запада и Востока наслоение различных этнических и региональных культурных типов временных компонентов конфессиональных общностей.
29248. Понятие культурной самоидентичности 32 KB
  Современные глобальные проблемы есть следствие логическое продолжение глубокой структурной несогласованности человеческой субъективности кризиса его самоидентичности. Распад социальной системы начинается с распада социальных связей и разрушения социальных субъектов кризиса их личностных ценностных ориентации и утраты самоидентичности. Проблема самоидентичности является стержнем ядром всей социальной проблематики.