Поделиться через


.printf

Маркер .printf ведет себя как оператор printf в C.

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

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

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

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

Имеются следующие варианты.

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

/od

отладчик

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

/oD

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

Окно командной строки уровня отладки

/oe

error

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

/on

Обычная

Командное окно "Обычный уровень"

/op

prompt

Окно командной строки уровня командной строки

/oP

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

Окно командной строки "Запрос регистрирует уровень"

/ОС

Символы

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

/ov

verbose

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

/ow

предупреждений (не рекомендуется)

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

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.