Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


SYMDEB: символьный отладчик программ



При помощи символьного отладчика SYMDEB могут быть выполнены следующие функции:

u Просмотр и исполнение кода программы.

u Внесение в тело программы точек выхода, которые останавливают исполнение программы.

 

u Проверка и изменение в памяти значений переменных.

u Ассемблирование и реассемблирование кода.

u Отладка программ, использующих соглашения языков Microsoft об эмуляции арифметики с плавающей точкой.

Имеется возможность временного выхода в DOS с последующим возвратом в SYMDEB и сохранением его состояния.

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

Программы на языках C, PASCAL и FORTRAN могут быть отлажены как на уровне исходных файлов, так и на уровне исполнительного кода. При этом пользователю доступны исходные предложения, реассемблированный машинный код или их комбинация в зависимости от режима работы SYMDEB.

Подготовка символьной отладки

Сущность символьной отладки заключается в том, что в процессе отладки программы имеется возможность ссылаться на элементы исходной программы (очевидно, что для этого исходный файл должен быть доступен SYMDEB).

SYMDEB является сильным отладочным средством даже без своих возможностей символьной отладки, однако, при этом в значительной степени теряется наглядность работы, что часто существенно усложняет отладку. С другой стороны, заметно упрощается процесс подготовки к отладке, особенно для программ на языке Ассемблера.

Для символьной отладки при помощи SYMDEB необходимо предварительно сформировать специальный символьный файл, куда должна быть занесена информация, позволяющая «привязать» элементы исходной программы (переменные, метки, номера строк) к относительным адресам внутри программных сегментов на уровне исполнительного кода.

Необходимо помнить, что все имена, участвующие в символьной отладке, должны быть объявлены (средствами конкретного языка) как общие, то есть, должны быть доступными программе LINK при согласовании внешних ссылок.

 

Исходная информация для символьной отладки

Этапы формирования символьного файла существенно зависят от того, каким транслятором обрабатывалась исходная программа. Дело в том, что некоторые компиляторы не обеспечивают информацию о номерах строк исходного файла, и для такой программы допустима лишь ограниченная символьная отладка (без адресации по номерам строк). Кроме того, при работе с макроассемблерами имеется целый ряд характерных для языков типа Ассемблера особенностей, вносящих в процесс отладки определенную специфику. Сущность этой специфики станет понятной при ознакомлении с командами 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 — первая процедура в исходном файле).

Формирование символьного файла при помощи MAPSYM

Программа MAPSYM предназначена для преобразования информации из MAP-файла, сформированного LINK, в форму, понятную SYMDEB. Создаваемый символьный файл может содержать до 10000 символов для каждого сегмента и столько сегментов, сколько допустимо с точки зрения машинной памяти.

Запуск MAPSYM обеспечивается введением следующей командной строки:

MAPSYM [/L | -L]< имя MAP-файла>

Имя MAP-файла может содержать спецификацию пути поиска в структуре оглавления, если это необходимо. Если не указано расширение имени, предполагается MAP.

Задание единственной опции /L (или -L ) позволяет получить на экране дисплея информацию о преобразовании, куда входят имена определенных в программе групп, адрес начала программы, число сегментов и число символов в каждом сегменте.

Символьный файл имеет базовое имя, совпадающее с базовым именем MAP-файла, и расширение SYM и всегда создается в текущем подоглавлении.

Запуск SYMDEB

Запуск SYMDEB обеспечивается введением следующей командной строки:

SYMDEB [< опции> ][< символьные файлы> ] [< исполнительный файл> ]
[< аргументы> ]

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

Исполнительным файлом может быть двоичный или EXE-файл, содержащий тестируемую программу. SYMDEB загружает этот файл в память.

Аргументы, если они указаны, передаются SYMDEB в заголовок тестируемой программы в точности, как они специфицированы, и могут быть использованы этой программой как параметры.

Стартовав, SYMDEB выдает сообщение об этом и символ -, после которого можно вводить команды SYMDEB.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-08; Просмотров: 1093; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.018 с.)
Главная | Случайная страница | Обратная связь