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 delle 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, se compilate nell'ambiente di compilazione selezionato. Quando vengono compilati nell'ambiente di compilazione gratuito, non hanno alcun effetto.