Sdílet prostřednictvím


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

Ekvivalent v rozhraní .NET Framework

Viz také

Referenční dokumentace

Ladění rutin

_CrtSetReportMode

_CrtSetReportFile

printf, _printf_l, wprintf, _wprintf_l

_DEBUG