Freigeben über


_CrtDbgReport, _CrtDbgReportW

Generiert einen Bericht mit einer Debugmeldung und sendet den Bericht zu drei möglichen Zielen (nur Debugversion).

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] ... 
);

Parameter

  • reportType
    Meldet den Typ: _CRT_WARN, _CRT_ERRORund_CRT_ASSERT.

  • filename
    Ein Zeiger auf den Namen der Quelldatei, in der Assertion/Bericht oder NULLaufgetreten sind.

  • linenumber
    Zeilennummer in der Quelldatei, in der Assertion/Bericht oder NULLaufgetreten sind.

  • moduleName
    Ein Zeiger auf den Namen des Moduls (.exe oder .dll), in der Assertion/Bericht aufgetreten sind.

  • format
    Zeiger auf die Formatsteuerzeichenfolge verwendet, um die für eine Benutzer zu erstellen.

  • argument
    Optionale Argumente Ersetzung von format.

Rückgabewert

Für alle Berichts abzielt und geben _CrtDbgReport_CrtDbgReportW 1 zurück, wenn ein Fehler auftritt und 0, wenn keine Fehler aufgetreten sind.Wenn sich das Ziel des Berichts Meldungsfenster eine Debug- und der Benutzer auf die Schaltfläche klickt, Retry Rückgabe 1 dieser Funktionen.Wenn der Benutzer auf die Schaltfläche klickt Abort Meldungsfenster Debug, brechen diese Funktionen ab sofort und gibt keinen Wert zurück.

Der _CrtDbgReport Makroaufruf Debuggen _RPT, _RPTF , um ihre Debugberichte zu generieren.Die Breitzeichenversionen dieser Makros sowie den _ASSERT [E], _RPTWn und des _RPTFWn, verwenden Sie _CrtDbgReportW , deren Debugberichte zu generieren.Wenn _CrtDbgReport oder _CrtDbgReportW Rückgabe 1, diese Makros den Debugger starten, vorausgesetzt, dass rechtzeitiges Debuggen (Just-In-Time) aktiviert ist.

Hinweise

_CrtDbgReport und _CrtDbgReportW können den Debugbericht auf drei verschiedene Ziele senden: Debugberichts eine Datei, ein Debuggen der Visual Studio Debugger Monitor (Debug) oder ein Meldungsfenster.Zwei Konfigurationsfeatures, _CrtSetReportMode und _CrtSetReportFile, wird das Ziel oder die Ziele für jeden Typ des Berichts anzugeben.Diese Funktionen ermöglichen das Ziel Berichten oder - ziele jeden einzeln gesteuert werden soll, Berichts an.Zum Beispiel anzugeben ist möglich, dass reportType nur aus _CRT_WARN Debuggen auf dem Bildschirm gesendet wird, während reportType von _CRT_ASSERT zu einem Meldungsfenster Debuggen und an eine benutzerdefinierte Berichtsdatei gesendet wird.

_CrtDbgReportW ist die Breitzeichen-Version von _CrtDbgReport.Alle zugehörigen Ausgabe- und Zeichenfolgenparameter sind in Zeichenfolgen mit Breitzeichen. Andernfalls ist sie auf Einzelbytezeichen Version identisch.

_CrtDbgReport und die Benutzer erstellen _CrtDbgReportW für eine für den Debugbericht, indem sie die Argumente argument[in]ndie format Zeichenfolge unter Verwendung der gleichen Regeln zu ersetzen, die von der printf oder wprintf-Funktionen definiert sind.Diese Funktionen des Debugbericht generiert und das Ziel oder die Ziele auf Grundlage der aktuellen Berichts ändert und der Datei, die für reportTypedefiniert sind.Wenn der Bericht auf ein Meldungsfenster Debuggen gesendet wird, werden filename, lineNumberund moduleName Informationen enthalten, die im Fenster angezeigt werden.

In der folgenden Tabelle werden die verfügbaren Optionen für den Modus für Berichte oder Modi und die Datei, und das resultierende Verhalten von _CrtDbgReport und _CrtDbgReportWauf.Diese Optionen werden als Bitflags in Crtdbg.h definiert.

Der Modus Berichts

Berichtsdatei

_CrtDbgReport, _CrtDbgReportW Verhalten

_CRTDBG_MODE_DEBUG

Nicht zutreffend

Schreibt Nachricht an den Fenstern OutputDebugString API.

_CRTDBG_MODE_WNDW

Nicht zutreffend

Aufrufs-Fenster MessageBox API, um das Meldungsfeld zu erstellen, um die Nachricht Abort, und Retryzusammen mit Ignore Schaltflächen anzuzeigen.Wenn ein Benutzer Abort, _CrtDbgReport oder auf Abbrüche sofort _CrtDbgReport klickt.Wenn ein Benutzer auf Retryklickt, wird 1 zurückgegeben.Wenn ein Benutzer auf Ignoreklickt, wird die Ausführung _CrtDbgReport und _CrtDbgReportW und return 0 fort.Beachten Sie, dass auf Ignore klickt, wenn ein Fehlerzustand ist häufig die Ergebnisse in aufhob Definition „Verhalten“.

_CRTDBG_MODE_FILE

__HFILE

Schreibt benutzerdefinierte HANDLENachricht, wobei die Fenster WriteFile APIs und überprüft nicht die Gültigkeit des Dateihandles. Die Anwendung ist für das Öffnen der Berichtsdatei und Übergeben eines gültigen Dateihandles verantwortlich.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDERR

Schreibt stderrMeldung.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDOUT

Schreibt stdoutMeldung.

Der Bericht kann einen, zwei oder drei Zielen oder keinem Ziel vorhanden) gesendet werden.Weitere Informationen zum Angeben des Berichts Modus oder der Modi und der Berichtsdatei finden Sie in der _CrtSetReportMode_CrtSetReportFile und Funktionen.Weitere Informationen zur Verwendung der Debug- Makros und der berichtenden Funktionen finden Sie unter Verwenden von Makros zum Überprüfen und Berichterstellung.

Wenn die Anwendung mehr Flexibilität als die erforderlich ist, die von _CrtDbgReport und _CrtDbgReportWbereitgestellt wird, können Sie schreiben, Berichtsfunktion und die Hookfunktion es in den berichtenden Mechanismus der C-Laufzeitbibliothek sind, indem Sie die _CrtSetReportHook-Funktion verwenden.

Anforderungen

Routine

Erforderlicher Header

_CrtDbgReport

<crtdbg.h>

_CrtDbgReportW

<crtdbg.h>

Weitere Informationen finden Sie unter Kompatibilität Kompatibilität in der Einführung.

Bibliotheken

Debugversionen von nur C .

Beispiel

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

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

Weitere Informationen finden Sie unter crt_dbg2 als ein Beispiel dafür, wie die Funktion Berichts ändert.

.NET Framework-Entsprechung

Siehe auch

Referenz

Debug- Routinen

_CrtSetReportMode

_CrtSetReportFile

printf, _printf_l, wprintf, _wprintf_l

_DEBUG