Этапы формирования символьного файла существенно зависят от того, каким транслятором обрабатывалась исходная программа. Дело в том, что некоторые компиляторы не обеспечивают информацию о номерах строк исходного файла, и для такой программы допустима лишь ограниченная символьная отладка (без адресации по номерам строк). Кроме того, при работе с макроассемблерами имеется целый ряд характерных для языков типа Ассемблера особенностей, вносящих в процесс отладки определенную специфику. Сущность этой специфики станет понятной при ознакомлении с командами SYMDEB.
По указанным причинам при работе с SYMDEB и особенно при подготовке символьной отладки следует всегда учитывать, каким компилятором обрабатывалась исходная программа.
SYMDEB совместим со следующими компиляторами:
u MICROSOFT FORTRAN версии 3.0 и выше
u MICROSOFT PASCAL версии 3.0 и выше
u MICROSOFT C версии 2.0 и выше
u MICROSOFT макроассемблер версии 1.0 и выше
u MICROSOFT BASIC COMPILER версии 1.0 и выше
u MICROSOFT BUSINESS BASIC COMPILER версии 1.0 и выше
u IBM PC FORTRAN версии 2.0 и выше
u IBM PC PASCAL версии 2.0 и выше
u IBM PC макроассемблер версии 1.0 и выше
u IBM PC BASIC COMPILER версии 1.0 и выше
Из них лишь следующие компиляторы поддерживают работу SYMDEB на уровне номеров строк исходного файла:
u MICROSOFT FORTRAN версии 3.0 и выше
u MICROSOFT PASCAL версии 3.0 и выше
u MICROSOFT C версии 2.0 и выше
u IBM PC FORTRAN версии 2.0 и выше
u IBM PC PASCAL версии 2.0 и выше
Конечной целью подготовки символьной отладки является создание символьного файла. В общем случае это осуществляется путем обработки исходной программы соответствующим компилятором и программой LINK и формирования на основе полученной информации собственно символьного файла при помощи программы MAPSYM.
Для создания символьного файла при работе с макроассемблерами необходимо выполнить следующие шаги:
1. Символы, которые будут использованы SYMDEB, объявить как общие. Среди этих символов могут быть имена процедур, переменных и меток. Имена сегментов и групп не могут быть объявлены общими, но они автоматически включаются LINK в MAP-файл и могут быть использованы при отладке. Пользователь может объявить фиктивные метки, которые в программе не используются, но могут пригодиться при расстановке точек выхода.
2. Ассемблировать исходный файл макроассемблером.
3. Обработать полученный объектный файл программой LINK с опцией /MAP и получить EXE- и MAP-файлы.
4. Использовать MAPSYM для создания символьного файла.
Для создания символьного файла при работе с другими совместимыми с SYMDEB компиляторами (кроме макроассемблеров) необходимо выполнить следующие шаги:
1. Компилировать исходный файл. При этом для упрощения отладки желательно не использовать имеющиеся в компиляторе средства оптимизации. При необходимости (и возможности) следует обеспечить наличие в объектном файле информации о номерах строк исходной программы.
2. Полученный объектный файл обработать программой LINK с опциями /MAP и, если нужно, /LINENUMBERS и получить EXE- и MAP-файлы.
3. Использовать MAPSYM для создания символьного файла.
4. Запустить SYMDEB для символьной отладки.
5. Использовать команду SYMDEB Go (G) для запуска тестируемой программы с первой процедуры или функции. Это обеспечивается специальной программой запуска из библиотеки программ данного языка. Обычно пользователю не нужна трассировка этой программы, и он желает начинать отладку с момента начала работы своей программы. В C-программе первая выполняемая функция всегда называется _main (компилятор C добавляет символ _ к имени процедуры main), в FORTRAN-программе — main, в PASCAL — первая процедура в исходном файле).