Программирование >>  Перегруженные имена функций и идентификаторы 

1 ... 94 95 96 [ 97 ] 98 99 100 ... 210


Механизм вычисления выражений Turbo Debugger

При вводе выражения в отладчике оно передается механизму вычисления выражения, который проверяет синтаксис и вычисляет значения идентификаторов, возвращая вычисленное значение. Чтобы задать механизм вычисления выражений, выберите команду Options Language, которая открывает диалоговое окно Expression Language. Это окно содержит кнопки с зависимой фиксацией Source, C, Pascal и Assembler, задающие язык для вычисления выражений. Кнопка Source определяет вычисления в соответствие с исходным языком. В большинстве случаев Turbo Debugger поддерживает полный синтаксис указанных языков.

Типы выражений

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

Язык 16-разрядный

C 0xnnnn

Pascal $nnnn

Assembler 0nnnn

При отладке 16-битового кода для задания адреса памяти вы можете использовать обозначение сегмент:смещение , например:

Язык Формат Пример

C Oxnnnn Ox1234:Ox0010

Pascal $nnnn $1234:0010

Assembler nnnnh 1234h:0B234h

32-разрядный

0xnnnnnnnn

$nnnnnnnn

0nnnnnnnn

Чтобы задать номер строки программы, перед десятичным номером строки укажите символ #. Можно задавать также байтовые списки:



Язык Список Данные

C 1234 AB 34 12 41 42

Pascal ab 0x04 c 61 62 04 63

Assembler ab$04c 61 62 04 63

Функции из выражений вызываются также, как в исходном коде. Это позволяет быстро проверить поведение функции.

Выражения с побочными эффектами

Побочный эффект означает изменение при вычислении выражения элемента данных. Это мощный инструмент отладки. Побочные эффекты имеют выражения с операциями присваивания (=, += и др.) и выражения с операциями ++ и --.

Спецификаторы формата

Чтобы изменить используемый по умолчанию формат вывода, укажите после выражение запятую и один из спецификаторов:

Символ или строка выводятся на экран в виде необработанных символов. Обычно непечатаемые символы выводятся в виде управляющих символов или в числовом формате. Этот параметр приводит к тому, что при выводе символов будет использоваться полный набор символов дисплея IBM.

Целое число выводится в виде десятичного значения.

f[#]

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

Выражение со ссылкой на память выводится в виде шестнадцатеричных байт.

Выражение со ссылкой на память выводится в виде десятичных байт.



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

Выводится массив или указатель на массив символов (строка, заключенная в кавычки). Строка завершается нулевым символом.

x или h

Целое выводится в виде шестнадцатеричного значения.

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

Переопределение области действия

Область действия идентификатора - это та область программы, в которой на него можно сс1латься. Заданные в выражении идентификаторы Turbo Debugger ищет в следующем порядке:

идентификаторы в стеке текущей функции;

идентификаторы в модуле, содержащем текущую функцию;

глобальные идентификаторы (вся программа);

глобальные идентификаторы в DLL, начиная с первой загруженной DLL.

Для определения области действия идентификатора отладчик использует текущую позицию курсора. Если вы измените в отладчике область действия, это может дать непредсказуемые результаты, поэтому для возврата к текущей точке используйте команду Origin окна Module.

Синтаксис переопределения области действия зависит от выбранного в окне Options Language языка. В Си, С++ и ассемблере для этого используется символ #, в Pascal - точка. Таким образом, для переопределения области действия



1 ... 94 95 96 [ 97 ] 98 99 100 ... 210

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика