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