Встроенный отладчик при своей работе использует SYM-файл, создаваемый как побочный продукт работы редактора связей. SYM-файл представляет собой таблицу адресов имен в текстовом виде. При этом встроенный отладчик может показать только содержимое памяти по указанному для данного имени адреса, поскольку других характеристик в SYM-файле нет.
Но имеется расширенный режим работы редактора связей, при котором кроме SYM-файла редактором связи создается еще TRF-файл, содержащий информацию об объектах программы в терминах языка PL/1. Эту информацию редактор связей собирает из всех PRN-файлов, которые создает компилятор PL/1-KT, если задать ключи компиляции «S» и «D». Расширенный режим отладки для редактора связей создается ключом /DEB.
Рассмотрим сказанное на небольшом примере:
test:proc main;
dcl i fixed(*), x(4) float(53);
do i=1 to hbound(x); x(i)=i; end i;
m1:
end test;
трансляция:
plink64 test.pl1
редакция связей (выполняется по умолчанию):
plink64 test
запуск с отладчиком:
test ??
Запуск и остановка на метке m1 и просмотр переменной x:
Те же действия в режиме расширенной отладки
Трансляция:
plink64 test.pl1 sd
редакция связей (нужно задать явно с ключом /deb):
plink64 test /deb
запуск с отладчиком, остановка на метке m1 и просмотр переменной x (теперь известны характеристики этого объекта):
test ??
Обратите внимание, что трансляция с ключами «S» и «D» может замаскировать ошибки трансляции, в том смысле, что они не выдаются на экран, а тоже попадают в PRN-файл, поэтому для трансляции в режиме с расширенной отладкой желательно составлять скрипт, где трансляция идет в два этапа, сначала, чтобы увидеть возможные ошибки на экране, если таких ошибок нет – трансляция с выдачей в PRN-файл, например:
plink64 test.pl1
if errorlevel 1 goto eof
plink64 test.pl1 sd
plink64 test /deb