Отправка выходных данных в отладчик
Код в пользовательском режиме и в режиме ядра использует различные подпрограммы для отправки выходных данных в отладчик.
Подпрограммы вывода User-Mode
Подпрограмма OutputDebugString отправляет строку, завершающуюся null, отладчику вызывающего процесса. В драйвере пользовательского режима OutputDebugString отображает строку в окне Команда отладчика. Если отладчик не запущен, эта подпрограмма не оказывает никакого влияния. OutputDebugString не поддерживает переменные аргументы строки в формате printf .
Прототип этой процедуры выглядит следующим образом:
VOID OutputDebugString(
LPCTSTR lpOutputString
);
Полную документацию по этой подпрограмме см. в разделе Взаимодействие с отладчиком.
Подпрограммы вывода Kernel-Mode
Подпрограмма DbgPrint отображает выходные данные в окне отладчика. Эта подпрограмма поддерживает базовые параметры формата printf . Только драйверы режима ядра могут вызывать DbgPrint.
Подпрограмма DbgPrintEx похожа на DbgPrint, но позволяет пометить сообщения тегами. При запуске отладчика можно разрешить отправку только тех сообщений с определенными тегами. Это позволяет просматривать только те сообщения, которые вас интересуют. Дополнительные сведения см. в статье Чтение и фильтрация сообщений отладки.
Макросы KdPrint и KdPrintEx идентичны dbgPrint и DbgPrintEx соответственно при компиляции в проверенной среде сборки. При компиляции в свободной среде сборки они не оказывают никакого влияния.