Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Символы позволяют напрямую управлять маркерами, которые используются отлаживаемой программой. Например, можно задать точку останова в главной функции с помощью команды bp main или отобразить целочисленную переменную MyInt с помощью команды dd MyInt L1.
Во многих случаях символы можно использовать в качестве параметров в командах отладчика. Это поддерживается для большинства числовых параметров, а также поддерживается в некоторых текстовых параметрах. Помимо общих правил синтаксиса символов, существуют также правила синтаксиса символов, применяемые в каждом из этих случаев.
Общие правила синтаксиса символов
Имя символа состоит из одного или нескольких символов, но всегда начинается с буквы, подчеркивания (_), вопросительного знака (?) или знака доллара ($).
Имя символа может быть квалифицировано по имени модуля. Восклицательный знак (!) отделяет имя модуля от символа (например, mymodule!main). Если имя модуля не используется, символ по-прежнему можно префиксировать с восклицательным знаком. Использование восклицательного знака без имени модуля может быть особенно полезным, даже для локальных переменных, чтобы указать команде отладчика, что параметр является именем, а не шестнадцатеричным числом. Например, переменная fade будет интерпретироваться командой dt (Display Type) как адрес, если перед ней не стоит восклицательный знак или не используется опция -n. Однако, чтобы указать, что символ является локальным, предшествуйте ему знак доллара ($) и восклицательный знак (! ), как в $!lime.
Имена символов полностью не чувствительны к регистру. Это означает, что наличие myInt и MyInt в вашей программе не будет правильно понято отладчиками; любая команда, ссылающаяся на одну из этих команд, может получить доступ к другой, независимо от того, как выполняется заглавная буква команды.
Синтаксис символов в числовых выражениях
Отладчик распознает два различных типа выражений: выражения Microsoft Macro Assembler (MASM) и выражения C++. Что касается символов, эти две формы синтаксиса отличаются следующим образом:
В выражениях MASM каждый символ интерпретируется как адрес. В зависимости от того, на что символ указывает, это будет адрес глобальной переменной, локальной переменной, функции, сегмента, модуля или любой другой распознанной метки.
В выражениях C++ каждый символ интерпретируется в соответствии с типом. В зависимости от того, к чему относится символ, он может быть интерпретирован как целое число, структура данных, указатель функции или любой другой тип данных. Символ, который не соответствует типу данных C++ (например, немодифицированному имени модуля), приведет к синтаксической ошибке.
Описание того, когда и как использовать каждый тип синтаксиса, см. в разделе "Оценка выражений".
Если используется синтаксис выражения MASM, любой символ, который можно интерпретировать как шестнадцатеричное число или как регистр (например, BadFeed, ebX) всегда должен быть префиксирован восклицательным знаком. Это гарантирует, что отладчик распознает его как символ.
Для задания суффикса символов можно использовать команду ss (Set Symbol Suffix ). Это указывает отладчику автоматически добавлять "A" или "W" в любое имя символа, который он не может найти в противном случае.
Многие подпрограммы Win32 существуют в версиях ASCII и Юникода. Эти подпрограммы часто получают в конце своих имен соответственно суффиксы "A" или "W". Использование суффикса символов поможет отладчику при поиске этих символов.
Сопоставление с суффиксом по умолчанию не активно.
Синтаксис символов в текстовых выражениях
Символы можно использовать в текстовых параметрах некоторых команд, например bm (Задать точку останова) и x (проверить символы).
Эти текстовые параметры поддерживают различные подстановочные знаки и спецификаторы. Дополнительные сведения см. в синтаксисе масок строк. Помимо стандартных строковых подстановочных знаков, текстовое выражение, используемое для указания символа, можно префиксировать с помощью начального подчеркивания. При сопоставлении с символом, отладчик будет рассматривать это как последовательность любых символов подчеркивания, в том числе нулевую.
Суффикс символов не используется при сопоставлении символов в текстовых выражениях.