 |
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Если вы забыли указать для своей программы необходимые аргу-
менты при ее загрузке, то для задания или изменения аргументов
можно использовать команду RunіArguments (ВыполнениеіАргументы).
Введите новые аргументы в том порядке, в котором они указываются
после задания имени программы в ответ на подсказку DOS.
Когда вы введете новые аргументы, Турбо отладчик запросит
вас, хотите ли вы перезагрузить программу с диска. Обычно следует
отвечать Yes (Да), так как в большинстве программ новые аргументы
будут действовать только если вы загрузите программу сначала.
TDeb 3.0 #1-3 = 141 =
Глава 6. Анализ и модификация данных
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
В Турбо отладчике предусмотрен уникальный и понятный способ
для работы с данными вашей программы.
- Окна проверки (окна Inspector) позволяют вам проверить
данные в том виде, как они содержатся в исходном файле. Вы
можете смотреть, на что ссылаются указатели, просматривать
массивы, а также структуры, записи и объединения в том ви-
де, как вы их записали.
- Вы можете также поместить в окно Watches (Просмотр) пере-
менные и выражения и наблюдать за изменением их значений
по мере выполнения программы.
- Диалоговое окно Evaluate/Modify (Вычисление/Модификация)
показывает содержимое любой переменной и позволяет вам
присвоить ей новое значение.
В данной главе предполагается,что вы уже знакомы с различны-
ми типами данных, которые могут встречаться в используемом вами
языке (С++, Паскале или Ассемблере). Если вы работаете с языком
недавно и еще не усвоили все типы данных, то в данной главе име-
ется также много ценной информации об основных типах данных
(char, int, integer, boolean, real, с двойной и одинарной точ-
ностью, с плавающей точкой, строковых, длинных целых и т.д.).
Когда вы подробнее познакомитесь с используемыми типами данных
(освоите указатели, записи, структуры, объединения и т.д.), можно
вернуться к данной главе и подробнее изучить, что можно делать с
ними с помощью Турбо отладчика.
В данной главе показывается также, как можно с помощью Турбо
отладчика проверять и модифицировать переменные программы. Снача-
ла мы расскажем о меню Data (Данные) и его командах. Затем мы об-
судим, как можно модифицировать данные программы с помощью вычис-
ления выражений, имеющих побочные эффекты. Наконец, мы покажем,
как можно непосредственно ссылаться на элементы данных в ваших
исходных модулях. Мы опишем также окно Watches (Просмотр) и те
методы, которые используются для вывода основных типов данных
каждого языка в окнах проверки (окна Inspector).
Примечание: Если вы хотите просматривать или изменять
произвольные блоки памяти (в виде байт шестнадцатиричных
данных), см. Главу 11, где рассказывается об отладке на
уровне Ассемблера.
Меню Data
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Меню Data (Данные) позволяет вам выбрать способ анализа и
изменения данных программы. Вы можете вычислить выражение, изме-
нить значение переменной и открыть окна проверок (Inspector) для
TDeb 3.0 #1-3 = 142 =
вывода содержимого данных на экран.
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Inspect... і Проверка
і Evaluate/Modify...Ctrl-F4і Вычисление/Модификация
і Add Watch... Ctrl-F7і Добавление выражения прос-
і Function return і мотра
АДДДДДДДДДДДДДДДДДДДДДДДДДДЩ Возврат результата функции
Команда Inspect...
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Команда Inspect (Проверка) выводит подсказку с запросом пе-
ременной, ссылающейся на данные, которые вы хотите проверить, а
затем открывает окно Inspector (окно проверки), где выводится со-
держимое переменной программы или выражения. Вы можете вводить
простое имя переменной, или сложное выражение, если только оно
ссылается на ячейку памяти и не сводится к константе.
Если при вводе данной команды курсор находится в области
текста, то подсказка автоматически содержит имя переменной по
месту расположения курсора (если она имеется). Если вы выбираете
выражение в области текста (с помощью клавиши Ins), то подсказка
содержит выбранное выражение.
Когда вы хотите проверить содержимое сложных структур дан-
ных, таких, как массивы или структуры, или связанный список запи-
сей, окна проверки могут вам очень помочь. Так как вы можете про-
верять данные внутри окна Inspector (Проверка), то "проходить"
структуры данных программы можно также легко, как пролистывать
исходный код программы в окне Module (Модуль).
Полное описание поведения окон Inspector содержится далее в
разделе "Окна Inspector".
Команда Evaluate/Modify...
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Команда Evaluate/Modify (Вычисление/Модификация) выводит
подсказку (диалоговое окно) для ввода вычисляемого выражения (см.
Рис. 6.1), затем вычисляет его (если вы выберите "кнопку" Eval -
вычисление) так же, как это сделал бы компилятор. Вычисление вы-
ражений полностью обсуждается в Главе 9.
Если при вводе данной команды курсор находится в области
текста, то в подсказке будет автоматически содержатся переменная,
расположенная в том месте, где находится курсор (если она имеет-
ся). Если вы помечаете выражение с помощью клавиши Ins, то подс-
казка (диалоговое окно) инициализируется отмеченным выражением.
TDeb 3.0 #1-3 = 143 =
ЙННННННННННННННEvaluate/ModifyННННННННННННННННННННННН»
є Expression Eval є
є °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° ±±±±±± є
є °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° є
є Cancel є
є Result ±±±±±± є
є °°°°°°°°°°°°°°°°°°°°°°°°° Help є
є ±±±±±± є
є New value Modify є
є °°°°°°°°°°°°°°°°°°°°°°°°° ±±±±±± є
є °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° є
є °°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°° є
є є
ИННННННННННННННННННННННННННННННННННННННННННННННННННННј
Рис. 6.1 Диалоговое окно Evaluate/Mofify
Expression - выражение; Result - результат; New value - но-
вое значение; not avaliable - недоступно; Eval - вычислить;
Cancel - отменить; Help - справка; Modify - модифицировать.
Нужно помнить о том, что после выражения, которое вы хотите
просмотреть, можно добавить строку управления форматом. (О строке
управления форматом рассказывается в Главе 9.) Этим полезно вос-
пользоваться, когда вы хотите просмотреть что-либо, что выводится
в формате, отличном от используемого Турбо отладчиком по умолча-
нию режима вывода на экран для этого типа данных. Для вывода ре-
зультата в другом формате укажите после выражение разделитель-за-
пятую (,), затем строку управления форматом. Это полезно исполь-
зовать, когда вы хотите что-либо просмотреть, но вывести это в
другом формате, отлично от того, который используется Турбо от-
ладчиком по умолчанию.
Диалоговое окно содержит три области (поля).
- Выражение, которое вы хотите вычислить, можно ввести в
верхней области. Это область ввода Evaluate. Как и все
другие подсказки ввода, эта область содержит протокол (вы-
полняемых действий).
- В средней области выводится результат вычисления вашего
выражения.
- Нижняя область - это область ввода, в которой вы можете
ввести новое выражение для вычисления. Если выражение мо-
дифицировать нельзя, то в данное области выводится сообще-
ние (недоступно).
Запись в поле ввода New Value (Новое значение) будет дейс-
твовать, если вы выберите "кнопку" Modify (Модификация).
Если строки данных слишком велики и не умещаются в поле ре-
зультата, то они заканчиваются символом >. "Прокрутив" окно впра-
во, вы можете просмотреть остаток строки.
TDeb 3.0 #1-3 = 144 =
Если вы выполняете отладку объектно-ориентированных программ
на языке C++ или Паскале, то диалоговое окно Evaluate/Modify поз-
воляет вам также вывести поля объекта или элементы реализации
класса. Для каждого элемента, который может использоваться при
вычислении записи, можно использовать спецификатор формата.
При выполнении трассировки метода или функции элементов Тур-
бо отладчик знает об области действия и наличии параметра
Self/this. C помощью спецификаторов и квалификаторов формата вы
можете вычислить параметр Self/this (данный).
Турбо отладчик позволяет также вызывать метод или функ-
цию-элемент прямо из диалогового окна Evaluate/Modify (Вычисление
/Модификация). Для этого просто наберите имя реализации метода,
за которым следует точка, а затем имя метода или функции-элемен-
та с фактическими параметрами (либо пустые скобки, если парамет-
ров нет). При следующих описаниях:
|