_CrtDbgReport _CrtDbgReportW
Vygeneruje sestavu s ladicí zprávy a odešle zprávu do tří možných míst (pouze ladicí verze).
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] ...
);
Parametry
reportType
Report type: _CRT_WARN, _CRT_ERROR, and _CRT_ASSERT.filename
Ukazatel myši na název zdrojového souboru, kde došlo k vyhodnocení či sestavy nebo NULL.linenumber
Číslo zdrojového souboru, kde došlo k vyhodnocení či sestavy nebo NULL.moduleName
Ukazatel myši na název modulu (EXE nebo DLL), kde došlo k vyhodnocení či sestavy.format
Ukazatel na formát ovládacího řetězec použitý k vytvoření zprávy pro uživatele.argument
Nahrazení volitelné argumenty použité příkazem format.
Vrácená hodnota
Pro všechny cíle sestavy _CrtDbgReport a _CrtDbgReportW vrátí 1, pokud dojde k chybě a 0, pokud jsou zjištěny žádné chyby.Však při určení sestavy je okno zprávy ladění a uživatel klepne Retry tlačítko, vrátí tyto funkce 1.Pokud uživatel klepne Abort tlačítka v okně zprávy ladění tyto funkce okamžitě přerušit a nevrací hodnotu.
_RPT, _RPTF ladění makra volání _CrtDbgReport jejich ladění generování sestav.Verze znaku wide tato makra jako _ASSERT [E, _RPTWn a _RPTFWn, použijte _CrtDbgReportW jejich ladění generování sestav.Při _CrtDbgReport nebo _CrtDbgReportW 1, vrátí tato makra spuštění ladicího programu, za předpokladu, že je povoleno ladění just-in-time (JIT).
Poznámky
_CrtDbgReporta _CrtDbgReportW lze zaslat ladění na tři různé cíle: ladicí soubor sestavy, sledování ladění ( Visual Studio debugger), nebo v okně zprávy ladění.Dvě konfigurace funkce _CrtSetReportMode a _CrtSetReportFile, je možné určit cíl nebo cíle pro každý typ sestavy.Tyto funkce umožňují vykazování cíl nebo cíle pro každý typ sestavy řízení odděleně.Je například možné určit, že reportType z _CRT_WARN pouze odesláno sledování ladění, zatímco reportType z _CRT_ASSERT zasílané do okna zprávy ladění a soubor uživatelem definované sestavy.
_CrtDbgReportWje verze celého znaku _CrtDbgReport.Jsou všechny jeho výstupní řetězec parametrů a celého řetězce; jinak je shodná s verzí jednobajtových znaků.
_CrtDbgReporta _CrtDbgReportW vytvořit zprávu pro sestavu ladění nahrazením argumentn argumenty doformat řetězec pomocí stejných pravidel definované printf nebo wprintf funkcí.Tyto funkce potom generovat sestavu ladění a určit cíl nebo cíle, na základě aktuální sestavy režimy a soubor definované pro reportType.Při odesílání zprávy na okno zprávy ladění, filename, lineNumber, a moduleName jsou součástí informací zobrazených v okně.
Následující tabulka obsahuje seznam dostupných voleb pro sestavu režim nebo režimy a souboru a výsledné chování _CrtDbgReport a _CrtDbgReportW.Tyto možnosti jsou definovány jako bitové příznaky v Crtdbg.h.
Režim sestav |
Soubor sestavy |
_CrtDbgReport, _CrtDbgReportW chování |
---|---|---|
_CRTDBG_MODE_DEBUG |
Nelze použít |
Zapisuje zprávu systému Windows OutputDebugString rozhraní API. |
_CRTDBG_MODE_WNDW |
Nelze použít |
Volání systému Windows MessageBox rozhraní API k vytvoření zprávou zobrazí zprávu spolu s Abort, Retry, a Ignore tlačítka.Pokud uživatel klepne na Abort, _CrtDbgReport nebo _CrtDbgReport okamžitě přerušen.Pokud uživatel klepne na Retry, vrátí 1.Pokud uživatel klepne na Ignore, pokračuje zpracování a _CrtDbgReport a _CrtDbgReportW vrátí 0.Všimněte si, že klepnutím na Ignore Pokud existuje chybový stav často výsledky "nedefinované chování." |
_CRTDBG_MODE_FILE |
__HFILE |
Zapisuje zprávu uživatelský HANDLE, pomocí systému Windows WriteFile rozhraní API a neověřuje platnost popisovač souboru; aplikace je pro otevírání souboru sestavy a předáním popisovač platný soubor. |
_CRTDBG_MODE_FILE |
_CRTDBG_FILE_STDERR |
Zapisuje zprávu stderr. |
_CRTDBG_MODE_FILE |
_CRTDBG_FILE_STDOUT |
Zapisuje zprávu stdout. |
Zprávu lze odeslat do jednoho, dvou či tří míst nebo bez určení vůbec.Další informace o určení sestavy režim nebo režimy a soubor sestavy naleznete _CrtSetReportMode a _CrtSetReportFile funkcí.Další informace o použití maker ladění a funkce vykazování viz Použití makra pro ověření a hlášení.
Jestliže aplikace vyžaduje větší flexibilitu než o _CrtDbgReport a _CrtDbgReportW, můžete napsat vlastní hlášení funkce a zapojení do c knihovna run-time zpráv pomocí mechanismu _CrtSetReportHook funkce.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
_CrtDbgReport |
<crtdbg.h> |
_CrtDbgReportW |
<crtdbg.h> |
Další informace o kompatibilitě v tématu Compatibility v úvodu.
Knihovny
Ladění verze C Runtime knihovny pouze.
Příklad
// crt_crtdbgreport.c
#include <crtdbg.h>
int main() {
#ifdef _DEBUG
CrtDbgReport(_CRT_ASSERT, NULL, NULL, "some module", NULL);
#endif
}
Viz crt_dbg2 příklad, jak změnit funkci sestavy.