Устройство для отладки программ

Иллюстрации

Показать все

Реферат

 

Изобретение относится к вычислительной технике и может быть использовано для автоматизированной отладки программ. Цель изобретения - уменьшение времени на отладку программ. Устройство для отладки программ содержит два блока памяти 1 и 23, первый 22, второй 25 и третий 26 дешифраторы, шесть триггеров 6-9, 12 и 18, два счетчика 15 и 30, пять элементов И 11, 13, 20, 27 и 28, два элемента ИЛИ 14 и 19 и регистр 16 режимов. Изобретение обеспечивает уменьшение объема анализируемой информации благодаря фиксации в трассе программ только тех команд, которые выполняются в подпрограммах не ниже заданного до трассировки уровня вложения. 1 ил.

СОЮЗ СОВЕТСКИХ.

СОЦИАЛИСТИЧЕСКИХ

РЕСПУБЛИН (gg 4 G 06 F 11/28

ОПИСАНИЕ ИЗОБРЕТЕНИЯ

К АВТОРСКОМУ СВИДЕТЕЛЬСТВУ г

ГОСУДАРСТВЕННЫЙ КОМИТЕТ

ПО ИЗОБРЕТЕНИЯМ И ОТКРЫТИЯМ

ПРИ ГКНТ СССР (21) 4360557/24-24 (22) 07.01.88 (46) 30.09..89. Бюл. Р 36 (72) В.Л.Виноградов, А.Е.Козлов, А.П.Павлов и И.Б.Сараф (53) 681.3 (088.8) (56) Авторское свидетельство СССР

II 754419, кл. G 06 F 11/22, 1979.

Авторское свидетельство СССР

У 1298752,. кл. G Об F 11/22, 1986. (54) УСТРОЙСТВО ДЛЯ ОТЛАДКИ ПРОГРАММ (57) Изобретение относится к вычислительной технике и может быть использовано для автоматизированной отладки программ. Цель изобретения—

„„SU„„1511750 А 1

2 уменьшение времени на отладку программ. Устройство для отладки программ .одержит два блока памяти 1 и 23, первый 22, второй 25 и третий

26 дешифраторы, шесть триггеров 6-9, 12 и 18, два счетчика 15 и 30, пять элементов И 11, 13, 20, 27 и 28, два элемента KIH 14 и 19 и регистр 16 режимов. Изобретение обеспечивает уменьшение объема анализируемой информации благодаря фиксации в трассе программ только тех команд, которые выполняются в подпрограммах не ниже заданного дб трассировки уровня вложения. 1 ил.

Изобретение относится к вычисли-. тельной технике и может быть использ овано для автоматизированной отладки программ в режиме реального вре5 мени.

Целью изобретения является повышение производительности отладки программ.

На чертеже представлена схема 10 устройства для отладки программ.

Устройство содержит первый блок 1 памяти, первыми информационными входами подключенный к адресным входам

2 устройства и соединенный вторыми 15 информационными входами с информационными входами 3 устройства. Информационный выход блока 1 подключен к информационному выходу ч устройства. Вход 5 признака кода команды уст- 20 ройства соединен с входом обращения блока 1 памяти и информационным входом первого триггера 6, выход которого соединен с синхровходами второго

7, третьего 8 и четвертого 9 триггеров. Вход 10 начала цикла команды устройства соединен с синхровходом первого триггера 6, вторым входом элемента И 11 и с синхровходом г.ято.= го триггера 17. Выход элемента И 11 соединен с первым входом элемента И

13, выход которого соединен с первым входом элемента ИЛИ 1ч и входом признака записи блок- 1 памяти, выход элемепта ИЛИ 14 соединен со счетным входом гервого счетчика 15, информационные выходы которого соединены с адре.сньппл входами блока памяти.Входы регистра 16 режимов соединены с информационными входами 17 задания 10 режимов устройства. Первый выход регистра 16 режимов соединен с установочным входом второго триггера 7.

Второй выход регистра 16 режимов соединен с информационным входом шестого триггера 18, выход которого соединен с вторым входом-элемента И 13.

Третий выход регистра 16 режимов соединен с первым входом элемента ИЛИ

19, выхсд которого соединен с третьим входом элемента И 13. Четвертый выход регистра 16 режимов соединен с первым входом элемента И 20, второй вход которого соединен с вторым управляющим входом 2 1 устройства.

Выход элемента И 20 соединен с вторым входом элемента ИЛИ 14 и входом признака чтения блока 1 памяти. Группа адресных входов 2 устройства соеливена с входаы первого д".:аифра-...— ра 22. Первый и второй вьгходы к-:aрого соединены < информационным входом и входом обращения блока 23 памяти с оответственно. Адре",íûå входы блока 23 памяти соединены с группой информационных входов 3 устройства.

Вход 2ч записи устройств- соединен с входом записи блока 23 памяти, выход которого соединен с информацион-. ным входом второго триггера 7. Группа информационных входов 3 устрой— ства соединена с информационными входами второго 25 и третьего 26 дешифраторов, выходы которых соединены с информационньпял входами третьего 8 и четверто"o 9 триггеров соответственно. Синхровходы третьего

8 и четвертого 9 триггеров соединены с выходом первого триггера 6. Выход третьего триггера 8 соединен с. первым входом элемента И ?7, а выход четвертого триггера 9 соединен с. первым входом элемента H 28. Вторые входы элементов И 27 и И 28 соединены с выходом пятого триггера 12, информационный вход которого соединен с третьим входом 29 признака обращения к стековой памяти устройства.

Выходы элементов И 27 и И 28 соединены со .входом сложения и вычитания реверсивного счетчика 30, старший информационныйл выход которого соединен с вторым входом элемента ИНИ 19, Группа установочньж входов реверсивногo счетчика 30 соединена с. группой информационных входов 3 устройства, а установочньй синхоовход реверсивного счетчика 30 соединен с входом установки кода уровня зложенля устройства 31. Выход переполнения первого счетчика 15 =oàäèíåí с синхровходом пятого триггера 18. Выход НТорого триггера 2 соединен с вторым входом элемента И 11, Блок 1 памяти в составе устройства для отладки программ выполняет роль буферного оперативного запоминающего устройства, в котором во время трассировки программы в реальном времени запоминается адрес выполняемой команды, код выло;и:яемой команды., резул-. fàò выполнения команды, Устройство Ьункцио в четырех режимах.

В режиме один разр-me:-.ÿ трассировка программы с запоминанием в блоке памяти всех вылов.яемьгх команд. В

5 151 режиме два разрешена трассировка программы с запоминанием в блоке 1 памяти только тех команд, коды которых до трассировки были заданы. В режиме три разрешена трассировка программы с запоминанием в блоке 1 памяти команд только тех подпрограмм, уроввень вложения которых не превьппает заданного до трассировки в реверсивном счетчике 30. В режиме четыре разрешено чтение результатов трассировки для дальнейшей обработки.

В режимах запоминания команд режимы один или два на вход 5 устройства из отлаживаемай системы подается сигнал, информирующий о том, что производится выборка кода команды из памяти атлаживаемой системы.

На вход 10 устройства иэ отлаживаемой системы подается строб, сопровождающий начало цикла команды, выполняемой в отлаживаемой системе. В режиме один разрешена трассировка программы с запоминанием в блоке 1 памяти всех выполняемых команд. При этом с первого выхода регистра 16 режимов на установочный вход второго триггера 7 поступает сигнал, который устанавливает выход второго триггера 7 в состояние "1". Тогда сигнал с входа 10 устройства, который сопровождает начало каждого машинного цикла команды, через первый 11, второй 13 элементы И поступает на вход записи блока 1 памяти и записывает в него инфармацию, поступающую с группы адресных 2 и группы информационных 3 входов устройства, а также поступая на счетный вход счетчика 15, наращивает адрес блока 1 памяти.

В режиме два разрешена трассировка программы с запоминанием в блоке

1 памяти только тех команд, коды которых да трассировки были заданы.

При этом до трассировки программ необходимо соответствующим образом заполнить блок 23 памяти. При этом на группе адресных входов 2 устройства формируется адрес, который поступает на вход дешифратора 22 устанавливает на первом и втором выходе дешифратара 22 уровни "0" и "1" соответственно. Уровень "1", поступая на вход обращения блока 23 памяти, разрешает выбор блока 23 памяти.

По группе информационных входов. 3 устройства перебираются все возмож1750

55 ные камбинаци;, причем каждая комбинация сопровожуR<="òс я страбам на входе 24 устройства, катарьп, поступая на вход записи блока 23 памяти, обеспечивает запись по адресу, сформированному на группе инп1срмацианных вхадов, значение "0". После чего весь объем блока 23 будет заполнен нулями, что соответствует запрещению записи в блок 1 памяти всех команд из системы команд. Далее на группе адресных входов 2 устройства формируется код, который, поступая на вход дешифратора 22, устанавливает на первом и втором выходе дешифратара 22 уровни 1 . На группе информационных вхадов 3 устройства формируется код тай команды, которую нада запомнить в блоке 1 памяти во время трассировки программ. Этот код команды сопровождается страбом на входе 24 устройства, который, поступая на вход записи второго блока 23 памяти, обеспечивает запись па адресу, сформированному на группе информационных входов, значение "1". Если при трассировке необходимо запоминать несколько команд, то эту процедуру необходимо повторить столько раз,сколько кодов команд необходимо запомнить в трассе программы, причем на группе информационных входов 3 устройства необходимо выставить соответствующий кад команды. После этой процедуры устройство для отладки программ готова к функционированию во втором режиме. На первом выходе регистра 16 режимов установлен уровень "0". Первый триггер 6 формирует импульс для машинного цикла, в котором на группе информационных входов

3 устройства появляется код команды, каторьп поступает на блок 23 памяти.

На его выходе появляется логический уровень либо "0", либо "1" в зависимости от того, чта была записана в блок 23 памяти на этапе подготовки трассировки программы. Если на выходе второго дополнительного блока 23 н н памяти появляется уровень О, то импульсом с выхода первого триггера

6 второй триггер 7 устанавливается в нуль, который, поступая на первый вход первого элемента И 11 запрещает прохождение синхроимпульса для записи в блок 1 памяти. Если на выходе блока 23 памяти появляется уровень "1, то импульсом с выхода первого триггера 6 второй триггер 7 ус1511750

55 танавливается в единицу, которая, поступая на первый вход первого элемента И 11, разрешает прохождение синхроимпульсов для записи в блок 1 памяти. После того, как счетчик 15 сформировал сигнал о переполнении, если на втором выходе регистра 16 режимов установлен уровень "0", то третий триггер 18 устанавливает состояние нуля, запрещая прохождение синхроимпульса для записи в блок

1 памяти. Если на втором выходе регистра 16 режимов установлен уровень "1", то третий триггер 18 устанавливает состояние единицы и трассировка программы продолжается.

В режиме три разрешена трассировка программы с запоминанием в блоке

1 памяти команд только тех подпрограмм, уровень вложения которых »е превышает заданного до трассировки в реверсивном счетчике 30. При этом до трассировки необходимо задать уровень вложения подпрограмм, подлежащих трассировке. Для этого на группе информационных входов 3 формируется уровень вложения подпрограмм следующим образом: значение информационных разрядов (кроме старшего) равно уровню вложения подпрограмм, подлежащих трассировке (отсчет с нуля), а значение старшего информационного разряда равно единице. После этой процедуры устройство для отладки программ готово к функционированию в третьем режиме.

Для этого на третьем выходе регистра 16 режимов устанавливается уровень "0". Второй дешифратор 25 работает таким образом, что на выходе ега появляется уровень " 1", когда на группе информационных входов появляются коды команд условного или безусловного выбора подпрограмм. Если код команды перехода 3 появился при выборке команды (на выходе первого триггера 6 появится уровень

"1"), то на выходе триггера устанавливается уровень "1". На выходе пятого триггера 12 уровень " 1" появляется только в том случае, если в машинном цикле команды (стробируется вторым синхровходом 10 устройства) есть обращения к стековой памяти (на третьем синхровходе устройства появляется уровень "1"), это означает, что после команды условного вызова подпрограммы действительно произошел

50 переход на выпот нение подпрограмм: (выполнилась стекова.= операция по сохранению адреса возврата). При этом на выходе элемента И 27 появляется уровень "1", который вызывает уменьшение содержимого реверсивного счетчика 30 на единицу. Пепочка третий дешифратор 26, четвертый триггер 9 и элемент И 28 работает аналогично с той лишь разницей, что уровень "1" появляется на выходе третьего дешифратора 26, когда на группе информационных входов появляются коды команд условного или безусловного возврата из подпрограмм. При этом появление уровня "1" на выходе элемента

И 28 вызывает увеличение содержимого реверсивного счетчика 30 на единицу.

Таким образом выполнение команд перехода на подпрограмму вызывает уменьшение значения реверсивного счетчика на единицу, а выполнение команд возврата из подпрограмм — увеличение содержимого реверсивного счетчика на единицу. Как только количество вложений в подпрограммы (выполнение команд обращения к подпрограммам без соответствующих команд возврата из подпрограмм) достигнет заданного до трассировки значения, состояние старшего информационного выхода реверсивного счетчика 30 окажется равчым нулю, что приведет к появлению на третьем входе элемента 13 уровня "0", что запрещает наращивание значения счетчика 15 и приводит к запрету трассировки команд данной подпрограммы, до тех пор пока не выполнится команда возврата из подпро— граммы.

В режиме четыре на третьем выходе регистра 16 режимов устанавливается уровень "1", что разрешает прохождение сигналов чтения с второго управляющего входа 2! устройства. При этом на выходе 4 устройства появляются результаты трассировки, которые затем могут быть преобразованы в удобный для анализа вид.

Формула изобретения

Устройство для отладки программ, содержащее первый и второй блоки памяти, первый, второй и третий триггеры, первый, второй и третий элементы И, элемент ИЛИ, счетчик адреса, первый дешифратор и регистр режимов, 15117. )0 ка памяти. гера и вторым входом первого элеСоставитель И. Сигалов

Редактор О.Спесивых Техред N.Äèäûê Корректор О.Кравцова

Заказ 5905/52 Тираж 668 Подписное

ВНИИПИ Государственного комитета по изобретениям и открытиям при ГКНТ СССР

113035, Москва, Ж-35, Раушская наб., д. 4/5

Производственно-издательский комбинат "Патент", r.Óæãîðîä, ул. Гагарина,101 причем адресные входы устройства соединены с входами первог0 дешифратора и с первой группой информационных входов первого блока памяти, выходы которого являются информационными выходами устройства, первый и второй выходы первого дешифратора соединены соответственно с входом обращения и с информационным входом второго блока памяти, информационные входы устройства соединены с адресными входами второго блока памяти и второй группой информационных входов первого блока памяти, признаки кода коман- 1» ды и начала цикла команды устройства соединены соответственно с информационным входом и входом синхронизации первого триггера, прямой выход которого соединеч с входом синхронизации второго триггера, информационный выход з-.орого блока памяти соединен с информационным входом второго триггера, о т л и ч а ю щ е е с я тем, что, с целью повышения производительности отладки программ, в устройство введены второй и третий дешифраторы, четвертый, пятый и шестой триггеры и счетчик вложенности, причем информационные входы устройства соединены с входами второго и третьего цешифраторов, выходы которых соединены с информационными входами соответственно третьего и четвертого триггеров, выход первого триггера соединен с тактовыми вхо35 дами третьего и четвертого триггеров, входы задания режимов устройства соединены с информационными входами регистра режимов, первый Вы- ход которого соединен с единичным входом второго триггера, прямой выход которого соединен с первым входом первого элемента И, вход начала цикла команды устройства соедиа5 нен с тактовым входом пятого тригмента И, выход к,.-: рого соединен с первым входом первого элемента И; второй, третий ki четверть)й выходы регистра режимов соединены соответственно " информационнь)м входом шестого триггера, с первым входом первого элемента ИЛИ и с первым входом третьего элемента И, выходы шестого триггера и пег.вого элемента ИЛИ соединены соответственно с вторыми и третьими входами второго элемента И, выход которого соединен с входом признака записи первого блока памяти и с первым входам второго элемента

ИЛИ, вход признака чтения устройства соединен с вторым входом третьего. элемента И, выход которого соединен с входом признака чтения первого блока памяти и вторым входом второго элемента ИЛ1(, выход второго элемента И1И соединен со счетным входом счетчика адреса, информационный выход и выход переполнения которого соединены соответственно с адресным входом первого блока памяти и с тактовым входом шестого триггера, выходы признака кода команды и признака обращения к стеновой памяти устройства соединены соответственно с входом обращения: первого блока памяти и с информационным входом пятого триггера, выход которого соединен с вторыми входами четвертого и пятого элементов И, выходы четвертого и пятого элементов И соединены соответственно с входами сложения и вычитания счетчика вложенности, выход старшего разряда которого соединен с вторым входом первого элемента ИЛИ, информационный вход, входы признаков установки кода и записи устройства соединены соответственно с информационным входом счетчика вложенности„ с признаком записи счетчика вложенности и с входом записи второго бло