_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.