автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Исследование и разработка методов построения автоматизированных систем отладки программного обеспечения специализированных вычислительных комплексов
Автореферат диссертации по теме "Исследование и разработка методов построения автоматизированных систем отладки программного обеспечения специализированных вычислительных комплексов"
п С> 9?.
ЛИМНГРАДСШ ОРДЕНА ЛЕНИНА И ОРДЕНА ОКТЯБРЬСКОЙ РЕВОЛЮЦИИ ЭЛЕКТРОТЕХНИЧЕСКИЙ ИНСТИТУТ ИМЕНИ В. И. УЛЬЯНОВА (ЛЕНИНА)
На правах рутописи
Потапов Дмитрий Анатольевич
ИССЛЕДОВАНИЕ И РАЗРАБОТКА МЕТОДОВ ПОСТРОЕНИЯ АВТОМАТИЗИРОВАННЫХ СИСТЕМ ОТЛАДКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ СПЕЦИАЛИЗИРОВАННЫХ ВЫЧИСЛИТЕЛЬНЫХ КОМПЛЕКСОВ
Специальность: Оз. 13.11 - Математическое и программное
обеспечение вычислительных машин, комплексов систем и сетей
АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук
Санкт-Петербург - 1991
Работа выполнена в Ленинградском ордена Лзнина и ордена Октябрьской Революции электротехническом институте иыени а И. УльяноваС Ленина)
Научный руководитель -
кандидат технических наук профессор ТИШХИН Е И. Официальные оппонент-
доктор физико-математических наук БАРАНОВ С. Е кандидат технических наук доцент ВАСЫШН Е И.
I *
Ведущая организация - ОКБ "Карат" при Ленинградском • производственно-техническом предприятии
Защита диссертации состоится " // " реЛ; £) О Л2.1992 г. в <и? часов на заседании специализированного совета К 063.36.12 Ленинградского ордена Ленина и ордена Октябрьской Революции электротехнического института имени К И. Ульянова( Ленина) по адресу: 197376, Санкт-Петербург, ул. Проф. Попова, Б.
С диссертацией можно ознакомиться в библиотеке института.
Автореферат разослан
Учений секретарь специализированного совета
Балакин Е Е
ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ
Актуальность темы. В настоящее время вычислительная техника отрога используется в различных областях науки и техники, что ¡ает возможность повысить производительность труда при проектировании и производстве, а тага» решать качественно новые задачи. Эффективность использования ЭВМ в каждой сфере применения опре-[еллется, во-первых, имеющимся проблемно-ориентированным прог->амыным обеспечением (ПО), во-вторых, используемой технологией фограммирования с соответствующими инструментальными средствами юддержки. Существующие технологичесгаге средства (методики про-ктирования, формальные модели, системы программирования) очень езнообразны и могут успешно применяться в различных проблемных властях как на отдельных этапах разработки ПО, так и для подержи ряда последовательных этапов.
Несмотря на общий прогресс в развитии технологии программи-ования, наблюдается значительное отставание в области разработ-и ПО специализированных цифровых вычислительных комплексов СЦВК), т. 5с. технические и экономические ограничения, специфика епаемых задач предъявляют особые требования к конечному прог-аммному продукту (размер, ограничения реального времени, надек-ость) и, следовательно, к инструментальным средства).!. На этапах одировалия, тестирования и отладки ПО СЦВК необходимо использо-ание специально разработанных кросс-средств, которые по эконо-ическим причинам (узкая область применения) в большинстве слу-зев уступают по функциональным возможностям универсальным сис-эмам программирования. Существуют такте большие технологические эмплексы, которые характеризуются высокой стоимостью разработки сопровождения, слозкностью изучения и закрытостью, что не поз-эляет развивать их или модифицировать применительно к конкрет-лл потребностям, дополнять их новыми технологическими срэдства-,1. Таким образом, задача исследования новых принципов построена инструментальных средств разработки ПО СЦВК является акту-оьной.
Цель и задачи работы. Целью работы является исследование и 1зработка методов построения кросс-средств отладки ПО СЦВК, обедающих следующим! свойствами:
- адаптируемость.к широкому классу архитектур СЦВК при не-
выоокой_ стоимости адаптации,
- модифицируемость и расширяемость функций оиотеш,
- возможность рключония в систему новых технологически средств,
- воаиожнооть накоплении опыта эксплуатации инструментам ной системы:
Достижение поставленной цели предусматривает решение следу ющих задач.
1. Газработка архитектуры кросо-сиотеыы, удовлетворяюще сформулированным требованиям.
2. Разработка способа описания архитектуры СЦВК и необходи мых для втого инструментальных средств, а таюке алгоритма, ин терпретируодего- это описание.
3. Разработка методов проектирования отладочных функций инструментальных средств для их реализации.
4. Разработка методики использования кросс-системы.
Методы исследования. Для решения указанных аадач испольау
стся аппарат теории баз данных, теории мноязетв, теории автома тов, Т-диаграммы и методы технологии программирования.
Научной новизной работы являются.
1. Разработка' форглальной модели абстрактной машины, которь милет быть адаптирована к конкретнш архитектурам СЦВК и позвс ллет реализовать выполнение целевых программ на инструментальис ЭВМ. Отличительной особенностью модели является использоват высокоуровневых языгавых средств для описания архитектур СЦВК базы данных для хранения этих описаний, что упрощает настройку сопровождение системы.
2. Раараоотка новой архитектуры кросс-системы отладки, № тиран обладает следукяцими отличительными особенностями:
- независимость отдельных функциональных блоков' (процессс рои) системы, достигаемая эа счет обмена информацией толы через сбшую базу данных,
- наличие у каждого процессора собственной' базы данных описанием выполняемых функций, что позволяет легко их модифиц! роьать и расширять,
- описание фушсций всех процессоров в терминах абстргч'ш '.лошыы, что позволяет использоЕать кроос-скстему для различи: ОЦВК.
3. Разработка формальной модели процессора отладки, которая гоэволяет разрабатывать высокоуровневые описания новых отладочна функций и модифицировать уже имеющиеся в базе данных. Описа-ше функций производится в терминах абстрактной машины, что дзот юзможность использовать процессор для отладга программ ра-шн-1ых целевых ЭВМ.
Практическая ценность.
1. Разработано множество примитивов, используемых для огш~ ¡алия архитектуры целевых машин, и схема данных для хранения »тих описаний. Разработан алгоритм, моделирующий работу абсграк-•ной машины.
2. Разработано множество примитивов, используемых для опн-;ания функций процессора отладки, и схема данных для хранения 1тих описаний. Разработан алгоритм, моделирующий работу пронес-юра отладки.
3. Разработаны методики настройки кросс-системы на архитектуру целевой машины и на выполнение новых отладочных функций.
4. Разработан пакет программ, реализующих имитатор аб-¡трактной машины, процессор отладки и множество примитивов.
Реализация результатов работы. Диссертация выполнена в сс »тветствии с тематическим планом научно-исследовательских работ :афедры МО ЭВМ. Разработанный пакет программ зарегистрирован в 'осударственном фонде алгоритмов и программ и внедрен в промыш-генности, где • применялся при создании специализированных вычис-штельных систем. Имеется соответствующий акт о внедрении.
Апробация работы. Основные положения работы докладывались и »бсуждались на научно-технических конференциях профессорско-пре-юдаьательского состава ЛЭТИ им. К И. Ульянова (Ленина) в .988-1989 г. г.
Публикаций. По теш диссертации опубликовано 3 печатных ра-
юты.
Структура и объем работы. Диссертация состоит из введения, |яти глав с выводами и заключения. Основной текст работы изложен 1а 99 страницах машинописного текста. Работа содержит 39 рисун-юв. Список литературы включает 102 наименования.
' 4 ' СОДЕРЖАНИЕ РАБОТЫ
• Во введении обосновывается актуальность работы, формулируйся цели и задачи исследования.
Первая глава посвящрна равработке концепции и архитектур!, кросс-системы отладки ПО СЦВК. '
В разделе 1.1 приводятся обзор' и клаосификщ?ия методов V средств анализа корректности Щ), которые разделяются на метода поиска ошибок и методы поиска неисправностей. Ошибка - это не-> корректное поведение программы из-за налитая в ньй неисправностей. Неисправность - эта некорректный компонент программы (константа, оператор, модуль и т.п.). Суп^зствуют неисправности тре> типов: неисправности инструментального Ш, неисправности, обус-ловлзнные некорректностью спецификации, и неисправности, внесенные на этапе кодирования. Методы анализа также делятся на динамические (используются результаты выполнения программы на ЭШ) V статические (исследуется текот программы).
Тестирование относится к классу динамических методов поиске ошибок. Выделяются основные подзадачи, приводится обзор работ. Результаты тестирования используются для устранения неисправностей и для оценки' качества ПО (надежность, вероятность корректности). Делается вывод об универсальности метода тестирования сс следующих точек зрения: одинаковая пригодность для ьсех категорий ПО* независимость от инструментальных средств разработки ПО; возможность выявления неисправностей всех типов.
Верификация (формальное доказательство правильности) отно-лгге» к классу статических методов анализа ошибок. Приводите» обзор работ и пример верификации, программы, сравниваются метод! верификации и тестирования. Сормулируются недостатки метода: необходимость специальной математической подготовки, высокая трудоемкость и вычислительная стоимость, зависимость от инструментального языка программирования и категории ПО, способность выявлять только те неисправности, которые внесены на этапе кодирования, Показано, что для программ некоторых типов сложность спецификации близка к сложности программы, что делает применена верификации бессмысленным. • •
Символическое выполнение санимает промежуточное положен» иажду тестированием и верификацией. :
Отладка относится к классу динамических методов поиска не-юправностей. Отладка принципиально неформализуема, т.к. модель южно построить либо для поиска конкретных видов неисправностей, I в зтом случае ее возможности ограничены, либо в предположении, гго существует эталон корректного поведения программы (епецифи-ация), но в этом случае нет гарантии корректности спецификации. )тладка базируется на предположении, что программист хотя и не южэт описать корректное поведение программы й общем случае, но .пособен отличить его от некорректного в конкретном случае. Но ¡ушествует общей методики отладки, но разгаботан ряд приемов и >бщих принципов. Другой аспект отладки состоит в способах гюлу-:ения информации о промежуточных состояниях программы в процессе е выполнения (отладочной информации). Рассматриваются следующие озможности: отладочный код, средства поддержки времени выполне-ия операционной среды, специально разработанные инструментально средства отладки. Делается выеод, что отладка является /ни ерсальным методом в том же смысле,' что и тестирование.
Статические методы поиска неисправностей очень разнообраг-ы: просмотр кода, .инспекции, анализ таблицы перекрестных ссылок гарты распределения памяти, возможности, предоставляемые ком-иляторамк языков программирования, и др. Делается вывод, что аадый метод этого класса имеет ограниченные возможности, но ногие из них очень эффективны, т. к. направлены на выявление наболев распространенных неисправностей.
■ Далее кратко описываются некоторые экспертные системы, редназначенные для анализа корректности программ. Для них ха~ актерны недостатки взятого за основу метода анализа; качество х работы зависит от полноты базы знаний; их применимость 'бави-ит ст языка программирования и проблемной области.
В_разделе 1.2 рассматриваются особенности инструментальных
редств разработки ПО СЦВК. Необходимость применения на этапах дарования, тестирования и отладаш специфических инструменталь-.->к средств - кросс-средств - объясняется следующими причинами: рранкченность и неадекватность аппаратных ресурсов; экономичес-1Я нецелесообразность разработки полной системы программировали для каждой целевой ЭВМ из-за узкого круга пользователей (при ;здании кросс-средств можно использовать все общесистемное ПО ютрументальной ЭЕ1П; качественные отличия (при использовании
;сросс-отладчика обеспечиваются более полные возможности доступа к устройствам целевой ЭВМ и более развитые средства управления отладкой, не искажаются временные характеристики, предоставляется возможность многократно воспроизводить отдельные состояния целевой ЭВМ). Делается вывод, что основная часть разработки IK СЦВК должна выполняться на инструментальной ЭВМ с мощной системой программирования.
В разделе 1.3 приводится обзор инструментальных средстЕ разработки ПО СЦВК. Рассматриваются системы РУЗА, СЕРП, СИНТЕРМ, ТЕМП, ЯУЗА-б и другие. Отмечаются следующие их недостатки: высокая стоимость разработки и сопровождения, сложность изучения, закрытость архитектуры (что не позволяет их модифицировать шп расширять применительно к потребностям различных пользователей), незначительные возможности адаптации к различным архитектура! СЦВК или высокие затраты на адаптацию.
В разделе 1.4 формулируются и обосновываются . требования t инструментальным средствам разработки Ю СЦВК: открытость архитектуры инструментальной системы; адаптируемость к различным архитектурам СЦВК; приемлемая стоимость адаптации (должна быть i несколько раз ниже стоимости разработки аналогичных по функциональным возможностям неадалтируемых инструментальных средств дш конкретного СЦВК); гибкость, модифицируемость, расширяемость; отсутствие жестко заданной технологии разработки ГЮ; накоплена опыта эксплуатации инструментальной системы;.мобильность инструментальной системы. '
В разделе 1.5 предлагается возможный вариант архитектур! |срсес-еистемы, удовлетворяющей приведенным требованиям. Систем; состоит из независимых языковых процессоров: имитатора абстракт ной машины (AM), процессора отладки и монитора С к, возможно других процессоров: тестирования, моделирования внешней среды статического анализа и пр.). Монитор осуществляет синхронизаци; работы других процессоров. Процессоры обмениваются данными чере oöniyto базу данных, содержащую текушэе состояние AM. Имитатор А обеспечивает выполнение программы СЦВК на технологической ЭВМ Он имеет собственную базу данных, в которой хранятся описания необходимые для настройки AM на архитектуры различных СЦВК. lipo цеосор отладки обеспечивает получение информации о выполнен« программы СЦВК в соответствии с задаиой программой отладки.
эго базе данных хранятся описания функций, выполняемых отладоч ными командами. В базах данных информация хранится во внутреннем представлении. Настройка процессоров может выполняться с помощью высокоуровневых языковых средств при наличии соответствующих трансляторов. Далее показывается, что предложенная архитестура соответствует предъявляемым требованиям.
Вторая глава посвящена разработке модели абстрактной машины
: am).
В разделе 2.1 определяется архитектура AM. Архитектура GEM ■ это абстрактное представление физической системы с точки зре-шя программиста, разрабатывающего программы на машинно-ориенти-юванном языке, или разработчика компилятора. Архитектура AM выдается таким образом, чтобы, с одной стороны, можно было ¡етально разработать и реализовать предложенный подход, с другой ¡тороны, чтобы класс архитектур был достаточно представительным. )тим требованиям отвечает модель фон Неймана, модифицированная с четом современных тенденций.
Абстрактной машиной назовем шестерку AM - < S,P,F,K,I,D >, де обозначения имеют следующий смысл.
1) S - конечное множество состояний AM, которое определяет-я состоянием следующих объектов.
■ ОЗУ - оперативное запоминающее устройство, характеризующее-я параметрами: 0 « a„y*< а"//- минимальный и максимальный адре-а. 1Иу - размер слова ОЗУ.
1ГЗУК - постоянное запоминающее устройство констант имеет налогичные характеристики 0 4 а"^ < к ln3w и представ-
яет собой множество пар { < a.'mi( , const' >, где а< <-- адрес константы, const* - значение константы.
Стек - описывается параметрами: lcmt* - размер элемента сте-а, пстек - максимальное количество элементов в стеке. .
Множество регистров R - { г£ >; каждый регистр гс> описыва-гся параметрами: папе,- - имя регистра, \Г{ - размер регистра.
PC - программный счетчик.
Т - системные часы.
Таким образом, S - Sriy х х Scme* х S* х Sк х Sr.
2) Р - программа AM (или ПЗУ -.постоянное, запоминающее уст-зйство программ). Представляет'собой множество пар <<я^у ,р' >>, ie-0-i а«'* < aLjM < ату - адрес команды, рг' - команда (иепоч-
ка битов длиной 1ву ).
3) F - { ft- > - множество описаний форматов команд Ali Каждое описание формата есть множество троек f - {<n^-',ni/r,naitey>>, где пу. п'у - номера битов начала и конца j поля команды соответственно, name/ - имя j поля команды.
4) К - { к4- > - множество описаний команд Ali. Каждое описание команды есть четверка к4- - < oc4-, f/, algt-, tj >, где oci -¡сод операции команды, ft- - описание формата команды. alg< - алгоритм выполнения команды, т.е. функция изменения состояния AU alg4- : N,- х S -> S, где Nt- - множество всех возможных значений полей команды типа k; ( N; - N*"81 х N?0*2 х ... х Ы™4'" ). tj > 0 - время выполнения команды.
5) I - { 14 > - множество алгоритмов обработки прерываний, т.е. функций изменения состояния AM (i^ : S -> S ). Условием запуска Ц является достижение AM некоторого состояния из заданного подмножества s^ е. ¿г S.
6) D - { d^ > - множество алгоритмов работы внешних устройств. Пусть Srf - состояние внешнего устройства d. Тогда d^ : S х S х S^,. Условием запуска d,j также является достижение некоторого состояния из заданного подмножества sAMe sj^ с S.
Таким образом,' описание архитектуры конкретного СЦШ будем представлять в виде множества значений параметров АЫ.
В разделе 2.Z выполнено концептуальное проектирование бааь дашшх, предназначенной для хранейия описаний архитектур различных СЦБК. Используется подход, известный как моделирование сущностей, заключающийся в моделировании и интеграции представлен^ пользователя в терминах диаграмм сущностей, элементами которыэ являются сущности, атрибуты и связи. Концептуальная схема выглядит следующим образом (линия без стрелки - связь "один-к-одно-му", линия со стрелкой - связь "один-ко-многим"):
ПАМЯГЬ_С ПРОИЗВОЛЬНЫМЛОСТУПОМ РЕГИСТР СТЕК
-' '-1
ВНЕШНЕЕ УСТРОЙСТЮ —-AM--— ПРЕРЫВАНИЕ
!
ПОЛЕ --ФОРМАТ-КОМАНДА-—АЛГОРИТМ--—ДЕЙСТВИЕ
U-«J I..
Сущность AM имеет атрибут "имя_АМ". Для описания памя'Л
зведены сущности ПАМЯТЬ_С_ПРОЙВВОЛЬНШ_ДОСТУПОМ (атрибуты "имя,, устройства памяти", "размер_слова", "начальный_адрес", "конечный _адрес"), СТЕК ("количество_элементов", "размер_элемента"), РЕГИСТР ("имя_регистра", "размер_регистра").
Для описания системы команд используются сущности КОМАНДА ;"имя_команды", "код_операции", "условие_дешифрации"), ФОРМАТ ;"имя_формата"), ПОЛЕ ("имя_поля", "начало", "конец", "алгоритм.. зычисления_исполнителыюго_адреса"), АЛГОРИТМ ("имя_алгоритма", 'условие_применимости"), ДЕЙСТЕИЕ ("имя_действия", "время_выпол-гения", "описание_действия"). Учтены следующее особенности систем команд СЦВК: дешифрация некоторых команд может зависеть от устанавливаемых динамически внешних (по отношению к команде) ус-говий; коды операций могут иметь различную длину; алгоритмы вы-голнения команд такте могут зависеть от внешних условий. Разбие-ше алгоритмов выполнения команд на более мелкие части действия (фактически, это линейные участки) - преследует следующие цели: уменьшение объема хранимых данных; задание -некоторой цисциплины разработют описания; получение компактной реализации действий на некотором языке программирования, что снижает возможность ошибки. Приводятся алгоритм дешифрации команды и алгоритм моделирования работы команды (на псевдокоде).
. Для описания внешк^й среды введена сущность ВНЕШНЕЕ_УСТ-РОЙСТВО с атрибутами ' "имя_устройства'", "тип_взаимодейстр.ия" [синхронное или асинхронное)• и "описание_алгоритма_работы_уст-эойства". Для описания.системы прерываний введена сущность ПРЕРЫВАНИЕ с аналогичными атрибутами.
Такой подход к описанию архитектуры СЦВК обладает следующи-Л1 достоинствами: описание имеет преимущественно непроцедурный гарактер; в алгоритмической части описания достигнута высокая степень модульности; программируемые части описания имеют малый эбъем (как по отдельности, так и в целом); в процессе эксплуатации накапливается опыт в виде реализованных ранее алгоритмов; не требуется выполнять этап генерации системы.
В конце раздела рассматриваются возможные подходы к реализации предложенной концептуальной схемы: использование одной иъ существующих СУБД; разработка специализированной СУБД; хранение описаний в последовательных файлах с дальнейшим преобразованием зо внутреннее представление.
В разделе 2. 3 с использованием того же аппарата выполнено концептуальное проектирование базы данных, предназначенной для хранения текущего состояния АМ. Кроме непосредственно текущего состояния запоминается также информация об изменениях в текущем состоянии, произведенных последней выполненной командой, что необходимо для работы процессора отладки.
В разделе 2. 4 рассматриваются критерии выбора языка описания архитектуры. Описание архитектуры может быть разделено на статическую (описание памяти и форматов команд) и алгоритмическую части. В статической части используются только идентификаторы и целые, числа. Для описания алгоритмов пригоден практически любой из распространенных языков программирования процедурного типа или язык ассемблера инструментальной ЭВМ. Сравиваются четыре возможных варианта: 1) компиляция программы СЦВК в программу на языке высокого уровня, 2) компиляция программы СЦВК в программу на языке инструментальной ЭВМ, 3) интерпретация программы СЦВК с использованием для описания алгоритмов языка высокого уровня, 4) интерпретация программы СЦВК с использованием языка инструментальной ЭВМ. Критериями сравнения являются: сложность описания архитектуры; сложность реализации и мобильность инструментальной системы; скорость имитаций программы СЦВК; допустите отладочные функции. Показано, что варианты с интерпретацией дают возможность реализовать любые отладочные функции, но имеют низкую скорость имитации, а варианты с компиляцией более пригодны для тестирования, т. к. они позволяют реализовать только некоторые отладочные функции, но имеют более высокую скорость имитации.
Далее рассматриваются основные конструкции, которые должны присутствовать в языке описания архитектуры: арифметические выражения, управляющие конструкции, средства Евода-вызода, процедуры, примитивы чтения-записи текущего состояния АМ, которые должны быть реализованы в виде набора процедур или макроопределений. Составлен перечень примитивов, определены их функции, для некоторых приведены алгоритмы на псевдокоде.' Отличительной особенностью является то, что кроме функций чтения-записи примитивы также выполняют проверку корректности параметров команд СЦВК и подготавливают информацию для процессора отладки (об изменениях в текущем состоянии Ш и семантике операндов текупрй команды).
В разделе 2.5 описываются функции имитатора АМ.\ • Приведены
алгоритмы для случаев исполььования языка компилируемого или интерпретируемого типов.
В разделе 2.6 анализируется предложенная модель АЫ. Рассматривается возможность обобщения модели для описания архитектур цругих классов, а также возможность использования имитатора АМ цля выполнения других функций (реассемблирование, трансляция зрограым в кодах одной целевой машины в программу в кодах другой делевой машины, реализация некоторых отладочных функций, создайте исполь8уеых при тестировании драйверов и заглушек, стати-геский анализ).
Третья глава посвящена вопросам проектирования инструмен-гальпых средств отладки (ИСО).
В разделе 3.1 приводятся неформальные определения основных терминов. Отладка - это поиск'и исправление некорректных композитов программы путем аналиаа ее выходных данных и промежуточное состояний. ИСО - это системные программные средства, пред-¡азначешше для сбора, обработки и отображения отладочной шформации. Первичная отладочная информация - это любая информация о начальном, конечном и промежуточных состояниях программы, вторичная отладочная информация - это любая информация, получен 1ая в результате обработки первичной с помощью ИСО или вручную, {оптрольная точка - это состояние программы и ИСО, удовлетворяюще заданному условию, при достижении которого ИСО выполняет не соторые заранее определенные- отладочные действия. Контрольна/! ?очка называется статической, если её местоположение в текста 1рограммы постоянно и может быть указано до начала выполнения 1рограммы; в противном случае контрольная точка является динеми-юской. Назовем контрольную точку элементарной, если для ее за (ания используется не более одного компонента состояния програм ш; в противном случае будем называть контрольную точку юставной. Отладочное действие - это одно из действий следующих ■ипов: отображение отладочной информации, запоминание отладочной шформации, арифметическая и логическая обработка отладочной информации, передача управления программисту, изменение состояния [рограммы, изменение состояния ИСО. Режим отладки (отладочная функция) - это алгоритм работы ИСО, который осуществляет поиск ¡аданных контрольных точек и выполнение в этих точках заданных 1Тладочных действий (т.е. это функция, заданная на множестве
контрольных точек.
В разделе 3.2' приводятся обзор и классификация ИСО с точки зрения сложности выполняемых функций. Выделяются три класса ИСО низкого уровня (большинство существующих отладчиков) допускают только элементарные статические контрольные точки, ..позволяют получать только первичную отладочную информацию, не допускают расширения множества режимов отладки. ИСО среднего уровня (системы AIDS, HELFER, СЕКОНГ, PEBUG, OMEGA) допускают составные, и динамические контрольные точки, дают возможность получать вторичную отладочную информацию, допускают расширение множества режимов отладки. Средства высокого уровня отличаются наличием спецификаций поведения программы В виде утверждений в некоторых статических точках программы (оператор assert в языке Ада) или в виде путовых выражений с предикатами, описывающих последовательность выполнения линейных участков программы с любой степенью подробности (отладчик программ на Паскале в системе ACCENT; отладчик для языка ECSF; EDL).
В разделе 3.3 формулируются требования к•ИСО: функциональные (перечислены типы контрольных точек и типы отладочных действий, которые должны допускаться), требования к языку управления отладкой (с одной стороны - лаконичность и простота, с другой - возможность описания всех необходимых функций) и требования к реализации (прозрачность и эффективность).
В разделе 3. 4 разрабатывается модель процессора отладки.
Процессором отладки назовем, тройку D - < S, М, Р > ,. где обозначения имеют следующий смысл.
1) о - множество состояний процессора отладки, представляющее декартово произведение множеств состояний режимов отладки:. S >- Smi х SWll х ... х S^. Состояние режима отладки есть пара < flag£-, PAR/>, где flag,-е i true, false > - флаг регшма, устанавливаемый командами программы отладки, PAR,- - множество текущих значений, параметров режима.
'¿} U - { т£ > - множество описаний режимов отладки. Каждое описание режима отладки есть шестерка шг< name^, pry, bp¿, ont, of ft-, act; >, где namet- - имя режима отладки; рг£ - приоритет режима, необходимый для организации взаимодействия режимов с перекрывающейся выходной информацией;' ■ ьр<- '-. предикат-, задающий множество контрольных точек режима; bp4- : SM х Sj -> { true.
aise }; on/ - Функция, описываювря действия, выполняемые прн истечении режима; они обычно связаны с запоминанием определенных ¡лементов состояния программа и параметров режима; в частном лучад может отсутствовать; оп^- : S^ ï: S» -> S3; offy - функ-!ия, описывающая действия, выполняемые при выключении режима; ни обычно связаны с отображением накопленной информации; в астном случае может отсутствовать; offt : S^*, х S3 -> S,; амуниция, описывающая отладочные действия, выполняемые в каждой онтрольной точке; в обпюм случае act; :'SAM х Sa -> Зяч х
3) Р - прбграмма процессора отладки, состоящая из команд ключения и выключения режимов отладки..
Далее проектируются базы данных для хранения описания архи ектуры процессора отладки и для хранения текущего состояния роцессора отладки.. ' .
Раздел заканчивается рассмотрением возможных способов синх-ониаации процессора отладки с имитатором Ali. пропроцесссрного. опроцессорпого и постпроцессорного. Приводится алгоритм принес-ора отладки при сопроцессорном взаимодействии.
В раздела 3. б рассматриваются входные языки процессора от-адки. Отмечается целесообразность использования выбранного яаы-а описания Архитектуры All для описания функций 'процессора гладки. Перечисляются примитивы, которые необходимо дополни-эльио разработать.
При разработке языка .управления отладкой необходимо решить эпрос об установлении соответствия между отладочными командами текстом программы. Рассматриваются два-возможных способа: раэ-5щение команд в тексте отлаживаемой программы; задание области 5йствия команд с помощью ссылок. Далее показано, что этот язкк элявн в:слючать три основных примитива: 1) ЕКЛОЧИТЬ <имя режима» :писск параметров:*; ?.) ВЫКЛЮЧИТЬ <имя реяима> < список парамет-зв>; 3) ПРЕРЫВАНИЕ <имя алгоритма обработки прерывания:». 'Эти зманды можно использовать непосредственно или рассматривать их 1К промежуточна язык.
Четвертая глава содержит методику использования кросс-скс-îi-W для отладки ПО CRBK.
В разделе 4.1 приводится методика настройки AM к& архитек ФУ CIiBîv, которая заключается к задании ряда параметров и раз-Лотке множества алгоритмов и занесении их ь~ базу данных. Мето-
дика имеет вид последовательной процедуры и иллюстрирована примерами.
В разделе 4.2 даются рекомендации по настройке процессорг отладки на выполнение новых функций. Режимы отладки разбиты ш классы, отличающиеся способом их описания в рассматриваемо* кросс-системе. Приводятся примеры.
Пятая глава посвяшрна реализации кросс-системы.
В разделе 5.1 обосновывается выбор системы программировали? МАСОН в качестве инструментального средства: наличие в систем« двух подходящих языков высокого уровня - ММ (интерпретируемогс типа) и ИШ78 (компилируемого типа); наличие так называемых ассоциативных таблиц, которые могут служить основой для созданш реляционных баз данных; наличие развитой архивной системы; высо-1сая мобильность системы.
В разделе 5.2 описывается подход к физическому проектированию баз данных. Дается (сраткая характеристика ассоциативных таблиц и показывается их пригодность для реализации баз данных 1 рассматриваемой задаче. Приведены примеры нескольких физически: структур.
В разделе 5.3 приведен пример настройки АМ на архитектур; микропроцессора ТМ332010.
В разделе 5.4 кратко перечислены основные эксплуатационньк характеристики кросс-системы. Реализовано две версии. В перво) варианте, ориентированном на тестирование, для описания архитектуры СЦВК и функций процессора отладки выбран язык ИНФ78, и используется препроцессорный способ организации взаимодействие процессоров. Во втором варианте, ориентированном на отладку,, реализован сопроцессорный способ организации взаимодействия процессоров; для описания архитектуры СЦВК и функций процессора отладки используется ММ.
В процессе разработки и опытной эксплуатации была выполнен; настройка системы на три различные архитектуры целевых маши] (бортовая С ЦВМ, новая разработка, микропроцессор). Процесс настройки занимает около двух недель ' работы одного программиста включая подготовку данных и отладку описания архитектуры.
В заключении сформулированы основные результаты работы 1 перечислены возможные направления дальнейших исследований (создание инструментальных средств поддержки других этапов проекти
эования ПО О ЦБК, оовданиэ болса эффективных реализаций).
ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ
1. Разработана архитектура кросс-системы, ориентироьшшми 1а постояннее развитие системы и упрощение ее адаптации к ра.-з шчным архитектурам С ЦБК.
2. Разработана формальная модель абстрактной машины, поаьо мющая реализовать иаетройку системы на архитектуру О ЦБК.
3. Разработано множество примитивов для описания архитекту >ы СЦВК и схема базы данных для хранения описаний.
4. Разработан алгоритм имитатора абстрактной мни, осуществляющий моделярошшэ работы оглаживаемых программ на ин-зтрумэнтальной ЭЕ11
5. Разработана КЭТОДИКа настройки абстрактной машины на ар штектуру СЦВК.
6. Разработана формальная модель процессора отладки, повво-<шкс£Л реализовивать и модифицировать отладочные функции.
7. Разработано ^¡о.гзстзо примитивов для описания функций фйцессора отладки и охома базы данных для хранения описаний.
3. Разработан алгоритм процессора отладки.
9. Разработана мэтодгеса постройки процессора отладта на ьи юлнение новых функций.
10. Разработан пакет•'программ, реализующих имитатор ы, , гршстной машины, процессор отладки и »множество примитивов.
ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ
1. Опалева Э. А., Поталов Д. А. Проектирование и ре-ал,юыиы рушщий инструментальных средств отладки// Вычислительная ах ни «а в автоматизированных системах контроля и управления: Иежвуз :б. науч. тр. / Пензенский политехи, ин-т. - 1989. - N 19. - С. 41 14.
2. Пэтапои Д. А-, Самойленко а П., Царев И. Е Настраиваемая ;истема отладки программ в кодах СЦВК/ Ленингр. электротехн. ш-т им. ЕИ. Ульянова (Ленина). - ГосФАП, инв. Н 60870000253. 1985.- 203 0,// Алгоритмы и программы: Информ. бюл. / ЫПИЦ [987. 7Н 8, - С. 13.
3. Потапов Д. А. , Самойленко Е П. , Царев И. В. Описание архи тектуры СЦВК в настраиваемой системе автоматизированного проем тирования программного обеспечения// Изв. ЛЭТИ: Сб. науч. тр. Ленингр. электротехн. ин-тим. а И. Ульянова (Ленина). - Л., 1986 Вып. 377. - С. 53-Б6.
Подп. к печ. 4.11.91. Формат 60x84 1/16. Офсетная печать. Печ. л. 1,0; уч.-изд. л. 1,0. Тираж 100 экз. Зак. N 293. Бесплатно.
Ротапринт ЛЗТИ. 197376, Санкт-Петербург, ул. Проф. Попова,5
-
Похожие работы
- Исследование методов отладки аппаратуры и программного обеспечения на процессоре с автоматическим распределением ресурсов
- Автоматизация отладки мультипрограммных систем реального времени
- Разработка моделей, методов и специального математичесокго обеспечения для повышения качества сложных комплексов программ в АСУ
- ИССЛЕДОВАНИЕ МЕТОДОВ ОТЛАДКИ АППАРАТУРЫ И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ НА ВЫЧИСЛИТЕЛЬНОЙ СИСТЕМЕ С АВТОМАТИЧЕСКИМ РАСПРЕДЕЛЕНИЕМ РЕСУРСОВ
- Автоматизация отладки программ на основе операционного описания их поведения
-
- Системный анализ, управление и обработка информации (по отраслям)
- Теория систем, теория автоматического регулирования и управления, системный анализ
- Элементы и устройства вычислительной техники и систем управления
- Автоматизация и управление технологическими процессами и производствами (по отраслям)
- Автоматизация технологических процессов и производств (в том числе по отраслям)
- Управление в биологических и медицинских системах (включая применения вычислительной техники)
- Управление в социальных и экономических системах
- Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
- Системы автоматизации проектирования (по отраслям)
- Телекоммуникационные системы и компьютерные сети
- Системы обработки информации и управления
- Вычислительные машины и системы
- Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)
- Теоретические основы информатики
- Математическое моделирование, численные методы и комплексы программ
- Методы и системы защиты информации, информационная безопасность