.Printf

Токен .printf работает так же, как и инструкция printf в C.

.printf [/D] [Option] "FormatString" [, Argument , ...] 

Элементы синтаксиса

/D
Указывает, что строка формата содержит язык разметки отладчика (DML).

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

Доступны следующие варианты:

Параметр Тип сообщения Заголовок цветов в диалоговом окне "Параметры"

/Od

отлаживаемый объект

Командное окно уровня отладчика

/Od

Запрос отладчика

Командное окно на уровне командной строки отладчика

/Oe

error

Командное окно уровня ошибки

/on

нормальный

Командное окно обычного уровня

/op

prompt

Командное окно на уровне командной строки

/Op

регистры запросов

Командное окно уровня регистрации запроса

/Os

символы

Командное окно уровня сообщений символов

/Ov

verbose

Командное окно подробного уровня

/Ow

warning

Командное окно уровня предупреждений

Formatstring
Задает строку формата, как в printf. Как правило, символы преобразования работают точно так же, как в C. Для символов преобразования с плавающей запятой 64-разрядный аргумент интерпретируется как 32-разрядное число с плавающей запятой, если не используется модификатор l .

Можно добавить модификатор "I64", чтобы указать, что значение должно интерпретироваться как 64-разрядные. Например, "%I64x" можно использовать для печати 64-разрядного шестнадцатеричного числа.

Символ преобразования %p поддерживается, но он представляет указатель в виртуальном адресном пространстве целевого объекта. Он не должен иметь модификаторов и использует внутреннее форматирование отладчика. В дополнение к стандартным описателям формата printf поддерживаются следующие дополнительные символы преобразования.

Знак Тип аргумента Аргумент Печатный текст

%p

ULONG64

Указатель в виртуальном адресном пространстве целевого объекта.

Значение указателя.

%N

DWORD_PTR (32 или 64 бита в зависимости от архитектуры узла)

Указатель в виртуальном адресном пространстве узла.

Значение указателя. (Это эквивалентно стандартному символу C %p.)

%ma

ULONG64

Адрес строки ASCII, завершаемой null, в виртуальном адресном пространстве целевого объекта.

Указанная строка.

%mu

ULONG64

Адрес строки Юникода, завершаемой значением NULL, в виртуальном адресном пространстве целевого объекта.

Указанная строка.

%msa

ULONG64

Адрес структуры ANSI_STRING в виртуальном адресном пространстве целевого объекта.

Указанная строка.

%msu

ULONG64

Адрес структуры UNICODE_STRING в виртуальном адресном пространстве целевого объекта.

Указанная строка.

%y

ULONG64

Адрес символа отладчика в виртуальном адресном пространстве целевого объекта.

Строка, содержащая имя указанного символа (и смещение, если таковое имеется).

%ly

ULONG64

Адрес символа отладчика в виртуальном адресном пространстве целевого объекта.

Строка, содержащая имя указанного символа (и смещение, если таковое имеется), а также любые доступные сведения об исходной строке.

Аргументы
Задает аргументы для строки формата, как в printf. Число указанных аргументов должно соответствовать количеству символов преобразования в FormatString. Каждый аргумент является выражением, которое будет вычисляться вычислителем выражений по умолчанию (MASM или C++). Дополнительные сведения см. в разделе Синтаксис числовых выражений.

Дополнительные сведения

Сведения о других маркерах потока управления и их использовании в программах команд отладчика см. в разделе Использование командных программ отладчика.

Комментарии

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

В следующем примере показано, как включить тег DML в строку формата.

.printf /D "Click <link cmd=\".chain /D\">here</link> to see extensions DLLs."

Снимок экрана: ссылка DML в окне командного браузера.

Выходные данные, показанные на предыдущем рисунке, имеют ссылку, которую можно щелкнуть, чтобы выполнить команду, указанную в теге <link> . На следующем рисунке показан результат щелчка по ссылке.

Снимок экрана: выходные данные DML в окне командного браузера.

Сведения о тегах DML см. в разделе dml.doc в папке установки средства отладки для Windows.