Sdílet prostřednictvím


_CrtDbgReport, _CrtDbgReportW

Generuje sestavy se zprávou, ladění a odešle zprávu do tři možné cílů (pouze verze ladění).

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
    Typ sestavy: _CRT_WARN, _CRT_ERROR, a _CRT_ASSERT.

  • filename
    Ukazatel na název zdrojového souboru, kde došlo k vyhodnocení či sestavy nebo NULL.

  • linenumber
    Číslo řádku na zdrojový soubor, kde došlo k vyhodnocení či sestavy nebo NULL.

  • moduleName
    Ukazatel na název modulu (.exe nebo .dll) kde vyhodnocení nebo sestavy došlo k chybě.

  • format
    Ukazatel na formát ovládacího prvku řetězec použitý k vytvoření zprávy uživatele.

  • argument
    Volitelné náhradní argumenty používané format.

Vrácená hodnota

Pro všechny cíle, sestavy _CrtDbgReport a _CrtDbgReportW vrátit 1, pokud dojde k chybě a 0, pokud nedojde k žádným chybám.Nicméně pokud cíl sestavy je okno zprávy ladění a uživatel klikne na tlačítko opakovat tlačítko, vrátí tyto funkce 1.Pokud uživatel klikne přerušení tlačítka v okně zprávy ladění tyto funkce okamžitě přerušit a nevracejí hodnotu.

_RPT _RPTF ladění makra volání _CrtDbgReport jejich ladění generování sestav.Verze širokého znaku tato makra stejně 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 můžete odeslat zprávu o ladění na tři různé cíle: soubor sestavy ladění, ladění monitorování ( Visual Studio ladicí program), nebo okno zprávy ladění.Dvě konfigurace funkce _CrtSetReportMode a _CrtSetReportFile, se používají k určení cílového nebo cíle pro každý typ sestavy.Tyto funkce umožňují vytváření sestav cíl nebo cíle pro každý typ sestavy samostatně řízení.Například je možné určit, že reportType z _CRT_WARN být pouze odeslání monitorování ladění, zatímco reportType z _CRT_ASSERT odeslány okno zprávy ladění a soubor uživatelem definované sestavy.

_CrtDbgReportWje verze širokého znaku _CrtDbgReport.Všechny její řetězec a výstupní parametry jsou v řetězci širokého znaku; v opačném případě je shodné s verzí jednoho bajtu znaku.

_CrtDbgReporta _CrtDbgReportW vytvořit zprávu uživatele pro sestavu ladění nahrazením argument[n] argumenty do format řetězec, pomocí stejných pravidel určené printf nebo wprintf funkce.Tyto funkce pak generovat sestavy ladění a určit cíl nebo cíle, založené na aktuální režim sestavy a soubor definován pro reportType.Pokud sestava je odeslána do okna zpráv ladění, filename, lineNumber, a moduleName jsou zařazeny do informace zobrazené v okně.

V následující tabulce jsou uvedeny dostupné možnosti pro režim sestavy 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 sestavy

Soubor sestavy

_CrtDbgReport, _CrtDbgReportW chování

_CRTDBG_MODE_DEBUG

Nelze použít

Zapíše zprávu pomocí systému Windows OutputDebugString rozhraní API.

_CRTDBG_MODE_WNDW

Nelze použít

Volá Windows MessageBox rozhraní API, chcete-li vytvořit okno se zprávou pro zobrazení zprávy spolu s přerušení, opakovat, a Ignorovat tlačítka.Pokud uživatel klikne přerušení, _CrtDbgReport nebo _CrtDbgReport okamžitě zruší.Pokud uživatel klikne opakovat, vrátí 1.Pokud uživatel klikne Ignorovat, provádění kódu pokračuje, a _CrtDbgReport a _CrtDbgReportW vrátí 0.Všimněte si, že kliknete Ignorovat kdy došlo k chybovému stavu existuje často za následek "nedefinované chování."

_CRTDBG_MODE_FILE

__HFILE

Zápisy zpráva, která má zadaný uživatelem HANDLE, pomocí systému Windows WriteFile rozhraní API a neověřuje platnost popisovač souboru; aplikace je zodpovědná za otevírání souboru sestavy a předání popisovač platný soubor.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDERR

Zápisy zpráva, která má stderr.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDOUT

Zápisy zpráva, která má stdout.

Sestava může být odeslána na jednu, dvě nebo tři míst nebo žádné cíle vůbec.Další informace týkající se určení sestavy režim nebo režim a soubor sestavy, naleznete _CrtSetReportMode a _CrtSetReportFile funkce.Další informace o použití makra ladění a funkce generování sestav naleznete v tématu Makra pro vytváření sestav.

Pokud vaše aplikace potřebuje větší flexibilitu, než jaký poskytuje _CrtDbgReport a _CrtDbgReportW, můžete napsat vlastní reporting funkce a přidat jej do knihovny C run-time reporting mechanismus pomocí _CrtSetReportHook funkce.

Požadavky

Rutina

Požadovaný hlavičkový soubor

_CrtDbgReport

< crtdbg.h >

_CrtDbgReportW

< crtdbg.h >

_CrtDbgReporta _CrtDbgReportW jsou rozšíření od společnosti Microsoft.Další informace naleznete v tématu kompatibility.

Knihovny

Ladicí verze knihoven C run-time pouze.

Příklad

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

int main(int argc, char *argv[]) {
#ifdef _DEBUG
   _CrtDbgReport(_CRT_ASSERT, __FILE__, __LINE__, argv[0], NULL);
#endif
}

Podívejte se na téma crt_dbg2 příklad Změna funkce sestavy.

Ekvivalent v rozhraní .NET Framework

Viz také

Referenční dokumentace

Rutiny ladění

_CrtSetReportMode

_CrtSetReportFile

printf, _printf_l, wprintf, _wprintf_l

_DEBUG