После исполнения команды вызова отладчика на экране дисплея появляется трёхоконный отладчик , который представлен на рис.3.7 А и В . Вариант А наблюдается на экране дисплея сразу после вызова отладчика. В качестве иллюстрации рассмотрен простейший пример поступления деталей со склада, их перемещения по ленте транспортёра, обработки на станке и ухода из системы. Процесс ИМ длится до получения данных о 100 обработанных деталях (см. 3.7, пример 3.1).
А. После вызова отладчика
ВLOCK CURRENT TOTAL SOURCE FOR MODEL xx.GPS ══════════════════════════════════════════════════
│S/C: OFF ABS CLOCK: 0. REL CLOCK: 0. TTG: 0
═══════════════════════════════════════════════════
│XACT: CURBLK: NEXTBLK: CHAINS: PC: │
│ │
│MARK-TIME: MOVE-TIME: PRIORITY: │
╘═══════════════════════════════════════════════════
Ready!
:
В.После инициализации отладчика
BLOCK CURRENT TOTAL SOURCE FOR MODEL xx.GPS
1 1 GENERATE 4,1 поступление заготовок
2 0 ADVANCE 2 транспортирование
3 0 SEIZE SERVER занятие сервера
4 0 ADVANCE 3.75,1 обслуживание на сервере
═══════════════════════════════════════════════════╕
│S/C: OFF ABS CLOCK: 3.5406 REL CLOCK:3.5406 TTG:100 ════════════════════════════════════════════════════════
ХACT: 1 CURBLK: 1 NEXTBLK: 2 CHAINS: CEC PC: │ MARK-TIME: 3.5406 MOVE-TIME: 3.5406 PRIORITY: 0 ════════════════════════════════════════════════════════
Ready!
: s
XACT 1 POISED AT BLOCK 2. RELATIVE CLOCK: 3.5406
:
Рис.3.7 Вид трёхоконного отладчика, А - в начальный момент вызова ; В - после инициализации отладчика ( первый шаг).
На рис.3.7 представлены оба варианта окон отладчика, вариант А - сразу после вызова окна пусты, первое окно исходного МФ (SOURCE FOR MODEL), следующее статусное окно и последнее диалоговое окно. На рис .3.4В представлены те же окна после инициализации МФ примера .
Инициализация вызванного трёхоконного отладчика производится двумя эквивалентными путями:
· Нажатием клавиши F10, что соответствует одному такту действия отладчика (каждое последующее последовательное нажатие клавиши продвигает процесс ИМ на один такт).
· Написанием в командной строке после приглашения ( : ) команды:
< s[tep]_ n > ,
где команда может быть написана в любом виде, начиная от четырёх букв до одной первой буквы и через обязательный пробел число тактов, на которые продвинется процесс ИМ (по умолчанию 1), т.е. s 1 =F10. При отсутствии пробела появится предупреждение об ошибке, после которого необходимо написать команду в правильном формате.
Рассмотрим теперь более подробно содержание окон, руководствуясь рис. 3.7В, поскольку все названия у окон обеих вариантов одинаковы, но в варианте В присутствует конкретное содержание.
Примечание: Окно диалога варианта А содержит запись - Simulation begins, которая исчезает после инициализации, кроме того, на рисунке не показаны всегда существующие надписи об авторе программы (см. реальное окно отладчика).
Окно исходного модельного файла (окно источника).
Занимает одну треть экрана дисплея и является верхней частью экрана отладчика
· Справа вверху первого окна отладчика следует общее название:
« Исходный файл интерактивного дебагера GPSS/H »
Далее в окне следуют названия колонок:
· BLOCK – обозначает номер ОБ,
· CURRENT – показывает ИН Хакт в ОБ,
· TOTAL- показывает общее количество транзактов в ОБ за время ИМ,
· SOURCE CODE (основан на примере ) - показывает 4 или 5 строк исходного МФ, а красная черта указывает на следующий ОБ, куда направится Хакт, если МФ длинный, то высекается только фрагмент, указывающий нахождение Хакт, следующий ОБ и 2-3 сопутствующих ОБ.
Окно текущего положения (статусное окно)
Занимает среднюю часть экрана и содержит информацию о состоянии модели, меняющуюся по мере продвижения Хакт по модели.
· S/C :OFF - положение флага изменения статуса: выключено,
· ABS CLOCK – значение абсолютного модельного времени,
· REAL CLOCK – значение относительного модельного времени. Оба этих значения в отсутствии ОУ CLEAR или RESET имеют одинаковую величину.
· TTG – (termination to go ) - значение счётчика завершений –СЗ, поскольку на первом такте терминирования не происходит, то оно равно значению операнда А ОБ START и уменьшается при каждом терминировании на величину операнда А ОБ TERMINATE.
· XACT - ИН транзакта, активного в данный момент.
· CURBLK- имя или номер ОБ, где находится Хакт.
· NEXTBLK - имя или номер ОБ, куда направляется транзакт.
· CHAINS:CEC – имя списка, в котором транзакт находится в настоящий момент, в данном примере список текущих событий – СТС.
· PC: - число захватов ( в материалах не используется ).
· MARK-TIME – время, отмечаемое при входе Хакт в модель.
· MOVE-TIME - время будущего начала движения, если Хакт находится на обслуживании.
· PRIORITY – уровень приоритета Хакт.
Окно диалога
Находится в нижней трети экрана и показывает команды, задаваемые пользователем, реакцию отладчика на эти команды, приглашения разного вида (см. далее по тексту). Информация окна автоматически прокручивается вверх, для освобождения пространства для новой информации.
· Ready! – сигнал, что отладчик готов к началу диалога.
· :s - приглашение в начале командной строки
· XACT1… запись после выполнения такта, гласящая, что «Хакт 1 располагается перед ОБ 2 », т.е. вышел со склада и готов начать движение на транспортёре. Выражение “ poised at … “ всегда обозначает, что Хакт пытается двигаться в ОБ, номер которого указан в сообщении.
Прерывание тестового режима и переход в командную оболочку можно осуществить двумя путями.
· Команда QUIT , написанная в командной строке прерывает сессию отладчика и возвращает управление DOS. Однако при этом, программа вначале проверяет, нет ли какой незавершённой операции, которая должна попасть в листинг отчёта и если такая операция существует и она незавершенна, то программа уточняет, действительно ли вы хотите прервать сессию. При этом у пользователя имеется три выбора: первый повторить запись quit и прервать сессию с потерей неоконченных операций, написать run или continue, позволяющих завершить все операции.
· Команда QQ или равноценная - qq (Quit Quickly ) сразу прерывает сессию отладчика и немедленно возвращается в командную оболочку без какой либо проверки незавершённых операций.
Обе эти команды не имеют никаких операндов.
После запуска отладчика функциональные клавиши F1 –F10 клавиши прокрутки выполняют специфические функции, которые указаны в таблице 3.4. Имеет смысл потренироваться с использованием всех клавиш, чтобы запомнить их назначение.
Таблица 3.4 Роль функциональных клавиш
Клавиша | Выполняемая функция |
Стрелка вверх | Прокрутка окна диалога на 5 строк вверх |
Стрелка вниз | Прокрутка окна диалога на 5 строк вниз |
Стрелка влево | Прокрутка окна диалога влево на 20 символов |
Стрелка вправо | Прокрутка окна диалога вправо на 10 символов |
F1 | Перемещение к началу окна диалога |
F2 | Удаление окон кроме окна диалога |
F3 | Перемещение к концу окна диалога |
F4 | Возвращение к з-м окнам |
F5 | Прокрутка окна диалога влево на 20 символов |
F6 | Прокрутка окна диалога вправо на 10 символов |
F7 | Прокрутка вверх на 1 линию окна МФ |
F8 | Не используется |
F9 | Прокрутка вниз на 1 линию окна МФ |
F10 | Продвижение процесса ИМ на один такт = step |
Ниже в таблице 3.5 приведен список наиболее применяемых команд, используемых в сеансе отладчика. В таблице, при использовании команд подчёркнуты буквы сокращённой записи команды, которая воспринимается программой аналогично полной записи. В графе таблицы
«пояснение» приводится основное назначение команды, некоторые команды используются для разных целей, соответственно для них указаны разные операнды.
Таблица 3.5 Команды отладчика( в алфавитном порядке )
Команда | Операнды | Пояснение |
AT | Имя или номер одного или нескольких ОБ | Предлагает список команд отладки, исполняемых каждый раз при достижении Хакт назначенного ОБ, прерывается командой END или для ранее установленных точек командой UNBREAK. |
BREAK | Имя или номер одного или нескольких ОБ | Вводит прерывание процесса для каждого установленного ОБ, глобальное прерывание снимается командой UNBREAK. локальное прерывание снимается командой CONTINUE |
CONTINUE | Ноль или несколько имёнSCAN,NEXT, SYSTEM | Служит для возобновления ИМ или для снятия локальных точек прерывания |
DISPLAY | Статус или код объекта См. примечания 1,2 | Выводит на экран дисплея статистики многих объектов и другую информацию, прерывается нажатием клавиш BREAK ,CTRL-C,CTRL-BREAK |
| Не имеет | Немедленно прекращает процесс ИМ |
QUIT | Не имеет | Прекращает процесс ИМ при выполнении условий |
RUN | Ноль или больше имён | Исполняет процесс ИМ, снимает все условия остановки процесса ИМ |
SCAN,SYSTEM, NEXT,CLOCK, ХACT | Устанавливает глобальные условия запрета. | |
SET | TIME =n,nS,nM | Устанавливает предел времени исполнения процесса в секундах или минутах |
TLOG[=]ON,OFF | Переключает логику действия терминала, при включении отображает на экране | |
TV[ = ] ON,OFF | Управляет показом процесса отладки | |
STEP | Число тактов | Задаёт темп продвижения по модели |
STOP | Не имеет | Прерывает на время процесс ИМ |
TRAP | SYSTEM | Определяет, что в каждый момент времени Хакт останавливается, контроль передаётся пользователю |
NEXT | Хакт снимается из СТС, появляется сообщение, контроль передаётся пользователю | |
SCAN | Производит сканирование СТС, контроль передаётся пользователю | |
CLOCK | Ставит ограничение на абсолютное время, когда оно достигает назначенной величины, контроль передаётся пользователю | |
XACT | Ставит ограничение на Хакт с определённым ИН | |
UNBREAK | Одно или несколько имён ОБ | Снимает глобальные условия прерывания |
UNTRAP | SYSTEM, NEXT, CLOCK ,XACT | Снимает условия запрета со всех точек модели |
Приложение. В списке классов и кодов объектов, упомянутых в таблице 3.5, подчёркнуты допустимые сокращения