Senden der Ausgabe an den Debugger

Benutzermodus- und Kernelmoduscode verwenden unterschiedliche Routinen, um die Ausgabe an den Debugger zu senden.

User-Mode Ausgaberoutinen

Die OutputDebugString-Routine sendet eine NULL-endende Zeichenfolge an den Debugger des aufrufenden Prozesses. In einem Benutzermodustreiber zeigt OutputDebugString die Zeichenfolge im Debuggerbefehlsfenster an. Wenn ein Debugger nicht ausgeführt wird, hat diese Routine keine Auswirkungen. OutputDebugString unterstützt die Variablenargumente einer printf-formatierten Zeichenfolge nicht.

Der Prototyp für diese Routine lautet wie folgt:

VOID OutputDebugString(
   LPCTSTR lpOutputString
   );

Eine vollständige Dokumentation dieser Routine finden Sie unter Kommunizieren mit dem Debugger.

Kernel-Mode Ausgaberoutinen

Die DbgPrint-Routine zeigt die Ausgabe im Debuggerfenster an. Diese Routine unterstützt die grundlegenden printf-Formatparameter . Nur Kernelmodustreiber können DbgPrint aufrufen.

Die DbgPrintEx-Routine ähnelt DbgPrint, ermöglicht es Ihnen jedoch, Ihre Nachrichten zu "markieren". Beim Ausführen des Debuggers können Sie zulassen, dass nur Nachrichten mit bestimmten Tags gesendet werden. Dadurch können Sie nur die Nachrichten anzeigen, an denen Sie interessiert sind. Weitere Informationen finden Sie unter Lesen und Filtern von Debugnachrichten.

Die KdPrint - und KdPrintEx-Makros sind identisch mit DbgPrint bzw . DbgPrintEx, wenn sie in der überprüften Buildumgebung kompiliert werden. Wenn sie in der kostenlosen Buildumgebung kompiliert werden, haben sie keine Auswirkungen.