Condividi tramite


_CrtDbgReport, _CrtDbgReportW

Genera un rapporto con un messaggio di debug e invia il rapporto a tre possibili destinazioni (versione di debug solo).

int _CrtDbgReport( 
   int reportType,
   const char *filename,
   int linenumber,
   const char *moduleName,
   const char *format [,
   argument] ... 
);
int _CrtDbgReportW( 
   int reportType,
   const wchar_t *filename,
   int linenumber,
   const wchar_t *moduleName,
   const wchar_t *format [,
   argument] ... 
);

Parametri

  • reportType
    Tipo di rapporto: _CRT_WARN, _CRT_ERRORe_CRT_ASSERT.

  • filename
    Puntatore al nome del file di origine in cui l'asserzione/rapporto si è verificato o NULL.

  • linenumber
    Numero di riga nel file di origine in cui l'asserzione/rapporto si è verificato o NULL.

  • moduleName
    Puntatore al nome del modulo (EXE o DLL) dove l'asserzione/rapporto si è verificato.

  • format
    Stringa del formato-controllo del puntatore utilizzato per creare il messaggio utente.

  • argument
    Argomenti facoltativi di sostituzione utilizzati da format.

Valore restituito

Per tutte le destinazioni del rapporto, _CrtDbgReport e _CrtDbgReportW ritorno a 1 se si verifica un errore e 0 se nessun errore viene visualizzato.Tuttavia, quando la destinazione del rapporto è una finestra di messaggio di debug e l'utente fa clic su Retry pulsante, restituire 1. di queste funzioni.Se l'utente fa clic su Abort button nella finestra di messaggio di Debug, l'arresto di queste funzioni e non restituire un valore.

_RPT, _RPTF chiamata di macro di debug _CrtDbgReport per generare i report di debug.Le versioni a caratteri estesi di queste macro nonché _ASSERT [E], _RPTWn e _RPTFWn, utilizzare _CrtDbgReportW per generare i report di debug.quando _CrtDbgReport o _CrtDbgReportW restituire 1, inizio di queste macro il debugger, a condizione che il debug JIT (JIT) è abilitato.

Note

_CrtDbgReport e _CrtDbgReportW può inviare il report di debug a tre diverse destinazioni: un file di report di debug, un debugging monitor ( Visual Studio debugger), o una finestra di messaggio di debug.due funzioni di configurazione, _CrtSetReportMode e _CrtSetReportFile, vengono utilizzati per specificare la destinazione o le destinazioni per ogni tipo di rapporto.Queste funzioni consentono la destinazione o le destinazioni di creazione rapporti per ogni tipo di rapporto siano archiviate separatamente.Ad esempio, è possibile specificare che a reportType di _CRT_WARN essere inviati solo a debugging monitor, mentre quelli reportType di _CRT_ASSERT non inviati a una finestra di messaggio di debug e un file di report definito dall'utente.

_CrtDbgReportW è la versione a caratteri estesi di _CrtDbgReport.Tutti gli output e parametri di stringa sono nelle stringhe di caratteri estesi, in caso contrario è identico alla versione a byte singolo carattere.

_CrtDbgReport e _CrtDbgReportW creare il messaggio utente per il report di debug sostituendo argument[nargomenti in] format stringa, utilizzando le stesse regole definite da printf o wprintf funzioni.Queste funzioni quindi generano il rapporto di debug e determinano la destinazione o le destinazioni, in base alle modalità Report correnti e archiviano definito per reportType.Quando il rapporto viene inviato a una finestra di messaggio di debug, filename, lineNumbere moduleName inclusi nelle informazioni visualizzate nella finestra.

Nella tabella seguente sono elencate le opzioni disponibili per la modalità Report o le modalità e il file e il comportamento risultante _CrtDbgReport e _CrtDbgReportW.Queste opzioni sono definite come flag di bit in Crtdbg.h.

modalità Report

file di report

_CrtDbgReport, _CrtDbgReportW comportamento

_CRTDBG_MODE_DEBUG

Non applicabile

Scrivere il messaggio nelle finestre OutputDebugString API.

_CRTDBG_MODE_WNDW

Non applicabile

finestre di chiamate MessageBox API per creare finestra di messaggio per visualizzare il messaggio con Abort, Retrye Ignore pulsanti.Se si sceglie di un utente Abort, _CrtDbgReport o _CrtDbgReport immediatamente interrotto.Se si sceglie di un utente Retry, restituisce 1.Se si sceglie di un utente Ignore, l'esecuzione continua e _CrtDbgReport e _CrtDbgReportW restituisce 0.Si noti che fa clic su Ignore quando una condizione di errore è spesso i risultati in “hanno comportamento indefinito.„

_CRTDBG_MODE_FILE

__HFILE

Scrivere il messaggio al fornito dall'utente a HANDLE, utilizzando le finestre WriteFile L'API e non verifica la validità di handle di file, l'applicazione è responsabile dell'aprire il file di report e di passare l'handle di file valide.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDERR

Scrivere il messaggio a stderr.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDOUT

Scrivere il messaggio a stdout.

Il rapporto può essere inviato a una, due, o le destinazioni o nessuna destinazione affatto.Per ulteriori informazioni su come specificare la modalità Report o le modalità e il file di report, vedere _CrtSetReportMode e _CrtSetReportFile funzioni.Per ulteriori informazioni sull'utilizzo delle macro di debug e sui rapporti di funzioni, vedere Utilizzando le macro per la verifica e la creazione di rapporti.

Se l'applicazione è necessaria una maggiore flessibilità rispetto a quella fornita _CrtDbgReport e _CrtDbgReportW, è possibile scrivere diventi proprietaria della funzione di segnalazione e per agganciarla nella libreria di runtime del linguaggio C fa riferimento il meccanismo tramite _CrtSetReportHook funzione.

Requisiti

routine

Intestazione di associazione

_CrtDbgReport

<crtdbg.h>

_CrtDbgReportW

<crtdbg.h>

Per ulteriori informazioni sulla compatibilità, vedere compatibilità nell'introduzione.

Librerie

versioni di debug di Librerie di runtime del linguaggio C solo.

Esempio

// crt_crtdbgreport.c
#include <crtdbg.h>

int main() {
#ifdef _DEBUG
   CrtDbgReport(_CRT_ASSERT, NULL, NULL, "some module", NULL);
#endif
}

vedere crt_dbg2 per un esempio di modifica della funzione del rapporto.

Equivalente .NET Framework

Vedere anche

Riferimenti

Procedura di debug

_CrtSetReportMode

_CrtSetReportFile

printf, _printf_l, wprintf, _wprintf_l

_DEBUG