Отслеживание выполнения программы

ПО ЕЕ ИСХОДНОМУ ТЕКСТУ

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

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

ОТОБРАЖЕНИЕ ДАННЫХ,

ИСПОЛЬЗУЕМЫХ

В ОТЛАЖИВАЕМОЙ ПРОГРАММЕ

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: