将输出发送到调试器
用户模式和内核模式代码使用不同的例程将输出发送到调试器。
User-Mode输出例程
OutputDebugString 例程将以 null 结尾的字符串发送到调用进程的调试器。 在用户模式驱动程序中, OutputDebugString 在“调试器命令”窗口中显示字符串。 如果调试器未运行,则此例程不起作用。 OutputDebugString 不支持 printf 格式字符串的变量参数。
此例程的原型如下所示:
VOID OutputDebugString(
LPCTSTR lpOutputString
);
有关此例程的完整文档,请参阅 与调试器通信。
Kernel-Mode输出例程
DbgPrint 例程在调试器窗口中显示输出。 此例程支持基本的 printf 格式参数。 只有内核模式驱动程序才能调用 DbgPrint。
DbgPrintEx 例程类似于 DbgPrint,但它允许你“标记”消息。 运行调试器时,只能允许发送具有特定标记的消息。 这样,你只能查看你感兴趣的那些消息。 有关详细信息,请参阅 读取和筛选调试消息。
在检查的生成环境中编译时, KdPrint 和 KdPrintEx 宏分别与 DbgPrint 和 DbgPrintEx 相同。 在自由生成环境中编译时,它们不起作用。