Condividi tramite


Invio dell'output al debugger

Il codice in modalità utente e in modalità kernel usa routine diverse per inviare l'output al debugger.

routine di output User-Mode

La routine OutputDebugString invia una stringa con terminazione Null al debugger del processo chiamante. In un driver in modalità utente OutputDebugString visualizza la stringa nella finestra Comando debugger. Se un debugger non è in esecuzione, questa routine non ha alcun effetto. OutputDebugString non supporta gli argomenti variabili di una stringa formattata printf .

Il prototipo per questa routine è il seguente:

VOID OutputDebugString(
   LPCTSTR lpOutputString
   );

Per la documentazione completa di questa routine, vedere Comunicazione con il debugger.

routine di output Kernel-Mode

La routine DbgPrint visualizza l'output nella finestra del debugger. Questa routine supporta i parametri di formato printf di base. Solo i driver in modalità kernel possono chiamare DbgPrint.

La routine DbgPrintEx è simile a DbgPrint, ma consente di "contrassegnare" i messaggi. Quando si esegue il debugger, è possibile consentire l'invio solo di tali messaggi con determinati tag. In questo modo è possibile visualizzare solo i messaggi a cui si è interessati. Per informazioni dettagliate, vedere Lettura e filtro dei messaggi di debug.

Le macro KdPrint e KdPrintEx sono identiche rispettivamente a DbgPrint e DbgPrintEx, quando vengono compilate nell'ambiente di compilazione controllato. Quando vengono compilati nell'ambiente di compilazione gratuito, non hanno alcun effetto.