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


Отправка выходных данных в отладчик

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

Подпрограммы вывода User-Mode

Подпрограмма OutputDebugString отправляет строку, завершающуюся null, отладчику вызывающего процесса. В драйвере пользовательского режима OutputDebugString отображает строку в окне Команда отладчика. Если отладчик не запущен, эта подпрограмма не оказывает никакого влияния. OutputDebugString не поддерживает переменные аргументы строки в формате printf .

Прототип этой процедуры выглядит следующим образом:

VOID OutputDebugString(
   LPCTSTR lpOutputString
   );

Полную документацию по этой подпрограмме см. в разделе Взаимодействие с отладчиком.

Подпрограммы вывода Kernel-Mode

Подпрограмма DbgPrint отображает выходные данные в окне отладчика. Эта подпрограмма поддерживает базовые параметры формата printf . Только драйверы режима ядра могут вызывать DbgPrint.

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

Макросы KdPrint и KdPrintEx идентичны dbgPrint и DbgPrintEx соответственно при компиляции в проверенной среде сборки. При компиляции в свободной среде сборки они не оказывают никакого влияния.