.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."
Выходные данные, показанные на предыдущем рисунке, имеют ссылку, которую можно щелкнуть, чтобы выполнить команду, указанную в теге <link>
. На следующем рисунке показан результат нажатия ссылки.
Сведения о тегах DML см. в dml.doc в папке установки средств отладки для Windows.