- •Турбо отладчик
- •1 Вызов отладчика
- •2 Подготовка программы
- •Турбо Си
- •3 Система меню
- •4 Классификация окон
- •5 Перемещение окон
- •Информационные окна
- •6.1 Окно модулей
- •6.2 Окно обзора (наблюдений)
- •6.3 Окно ловушек
- •6.4 Окно вызовов
- •6.5 Окно сообщений
- •6.6 Окно переменных
- •6.7 Окно файлов
- •6.8 Окно процессора
- •6.9 Окно памяти
- •8 Составление выражений
- •Турбо Си
- •Турбо Паскаль
- •Турбо Ассемблер
- •Редактирование
- •9 Опции меню
- •Клавиши Функции
- •10 Главное меню
- •Локальное меню
- •Локальное меню
- •Локальное меню
- •Logging Включение/выключение регистрации сообщений Add comment Вывод указанного комментария в окно сообщений.
- •Локальное меню
- •Локальное меню
- •Локальное меню
- •Локальное меню
- •Локальное меню рамки Code
- •Локальное меню рамки Stack
- •Локальное меню рамки Data
- •Локальное меню рамки Register
8 Составление выражений
Состав выражений, которые можно конструировать, пользуясь отладчиком, не отличается существенно от состава выражений используемого языка.
В настоящей версии отладчика можно осуществить выбор состава в соответствии с Турбо Паскалем, Турбо Си или Турбо Ассемблером. По умолчанию принимается такой состав, какой вытекает из текущего базового модуля, то есть того, в котором произошел останов выполнения программы. Однако ничто не мешает выбрать иной состав. С этой целью достаточно высветить меню Options/Language, а затем определить выбор языка. В типичных случаях для обращения к переменной достаточно указать ее идентификатор, а в целях обращения к команде программы - указать ее номер строки, предваренной знаком “ (hash). Это вытекает из того, что, идентифицируя объект базовой программы, отладчик использует те же самые правила определения области действия описания, что и компилятор.
Если локализация объекта в текущем базовом модуле окажется невыполнимой, то принимается, что речь идет о внешнем объекте, находящемся в одном из других модулей программы. Это предположение может быть аннулировано указанием полного имени объекта name; которое имеет вид
[ # module [ # file ]] # line [ # name ]
[ # module [ # file ] ] [ # procedure } # name
В этой записи, где module является именем модуля, file - именем файла, line - номером строки, a procedure - именем процедуры, фрагменты, взятые в квадратные скобки, могут быть опущены. В частности, выражение
# 44 # Count
может быть именем переменной Count, доступной из 44-й строки текущего модуля, а
# Routine # Local
именем переменной Local, доступной из процедуры Routine.
Турбо Си
Сохраняется полный состав выражений, за исключением операции присоединения, выраженной оператором "," (запятая). Допускается использование следующих операторов:
Приоритет Операторы
0 : :
1 ( ) [ ] . -> sizeof (одноаргументный)
2 * & - + ! ~ ++ --
3 * / %
4 + -
5 << >>
6 < <= > >=
7 == ! =
8 &
9 ^
10 |
11 &&
12 | |
13 ? :
14 = += -= /= %= <<= >>= & = ^= |=
Внимание: Дополнительный оператор : : (двойное двоеточие) может использоваться для создания далекого указания (например 2: :3 является указанием номера сегмента 2 и смещения 3).
Пример. Выражения в Турбо Си/
В области действия описания
Int Fixed = 13;
выражение *&Fixed имеет значение 13.
Турбо Паскаль
Сохраняется полный состав выражений, за исключением операций множеств и соединения цепочек. Допускается пользование следующих операторов:
Приоритет Операторы
1 @ ^ not type( ) + - (одноаргументный)
2 * / div mod and sh1 shr
3 in + - or xor
4 <<->>-<>
5 :-
Результатом операции :“ (присваивание) является присваивание значения переменной.
Пример. Выражения в Турбо Паскале
В области действия описания
conat Fixed : Integer - 13 выражение
(BFIxed)" имеет значение 13.
Турбо Ассемблер
Сохраняется полный состав выражений, в которых ограничиваются использованием следующих операторов:
Приоритет Операторы
1 ххх PTR (например, BYTE PTR) .
2
3 :
4 OR XOR
5 AND
6 NOT
7 EQ NE LT LE GT GE
8 + -
9 * / MOD SHR SHL
10 + - (одноаргументное)
11 OFFSET SEG
12 < ) [ ]
Внимание: Присваивание значений переменным может происходить с помощью оператора " (присваивание), например
Count - [BYTE PTR OS : 20]
Пример. Выражения в Турбо Ассемблере
В области действия описания
Fixed DW 13 выражение
[WORD PTR DS: (OFFSET Fixed)] имеет значение 13.
