77358

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

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

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

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

Русский

2015-02-02

26.5 KB

0 чел.

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

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

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

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

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

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

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

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

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

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

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


 

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

66916. Культура Московской Руси 40 KB
  Большое значение в возвышении Москвы имела удачная политика московских князей по отношению к монголотатарам. С 14 века князья демонстративно подчеркивают роль Москвы как национального лидера в борьбе с врагом. Этот храм должен был стать главной святыней Москвы.
66917. Культура и цивилизация, Теория культурогенеза 36 KB
  Второй подход характеризует цивилизацию как определённую ступень развития культуры. Первым эту точку зрения высказал Шотландский философ 18 века Адам Фергюссон в работе Опыт истории гражданского общества он разделил историю человеческой культуры на 3 стадии: дикость варварство цивилизованность.
66918. Болдинский период творчества 45 KB
  Это один из плодотворных периодов в творчестве А.С. Пушкина. Исследователи считают, что в это время в поэзии Пушкина доминируют 2 темы: тема поэта и поэзии («Румяный критик мой», «Ответ анониму»). Своеобразие этой темы заключается в том, что к традиционному видению...
66919. Опасности техносферы 175.12 KB
  К новым техносферным относятся условия обитания человека в городах и промышленных центрах производственные транспортные и бытовые условия жизнедеятельности. Практически все урбанизированное население проживает в техносфере где условия обитания существенно отличаются...
66920. Динамика антропологии как социальной науки 39 KB
  Просветительско-рационалистический идеал будущего развития культуры идея подхвачена от эпохи просвещения. Они пытались выстроить естественную историю культуры на закономерной основе пытались понять логику развития культуры. Он считал что многообразие культурных явлений можно свести к немногочисленным...
66921. МЕМБРАННЫЕ МЕХАНИЗМЫ ВОЗНИКНОВЕНИЯ И ПРОВЕДЕНИЯ ЭЛЕКТРИЧЕСКИХ СИГНАЛОВ 105 KB
  Для того, чтобы понять, как и почему возникает возбуждение в нервных или мышечных клетках, необходимо прежде всего уяснить основные правила обмена веществами между клеткой и окружающей её средой, поскольку ионы и небольшие молекулы одновременно растворены в водной среде клетки и во внеклеточном пространстве...
66922. ПОЛІТИЧНА ВЛАДА 124.5 KB
  Політична влада є одним з центральних понять політології. Сам термін «влада» не має однозначного визначення, що пояснюється його складністю та неоднозначністю. Загалом владу визначають як право і реальну можливість здійснювати свою волю, нав’язуючи її іншим людям.
66923. Способы выражения грамматических значений 177.5 KB
  В зависимости от того, выражаются ли лексическое и грамматическое значения внутри знаменательного слова или для выражения ГЗ используются другие единицы, грамматические способы делятся на синтетические (ЛЗ и ГЗ выражены внутри знаменательного слова) и аналитические (ГЗ выражается за пределами знаменательного слова).
66924. ГЕОГРАФІЧНИЙ ЧЕМПІОНАТ «УКРАЇНО МОЯ» 62 KB
  Як говорить М.Рильський: Хто не знає минулого, той не вартий майбутнього. Регіон, що об’єднує територію Харківської, частково Сумської і Луганської областей. Слобожанщина. Регіон, розташований на півдні Івано - Франківської області. Покутня. З. Назва регіону пов’язана з назвою ооласті. Волинь.