Udostępnij za pośrednictwem


_CrtDbgReport, _CrtDbgReportW

Generuje raport z debugowania wiadomości i wysyła raport do trzech możliwych docelowych (tylko wersja debugowania).

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
    Wskaźnik do nazwy pliku źródłowego, gdzie wystąpił assert raportu lub NULL.

  • linenumber
    Numer w pliku źródłowym, gdzie wystąpił assert raportu lub NULL.

  • moduleName
    Wskaźnik, aby nazwa modułu (.exe lub .dll), gdzie wystąpił assert raportu.

  • format
    Wskaźnik kontroli format ciąg używany do tworzenia wiadomości użytkownika.

  • argument
    Podstawianie opcjonalne argumenty używane przez format.

Wartość zwracana

Dla wszystkich miejsc raportu _CrtDbgReport i _CrtDbgReportW zwraca –1, jeśli wystąpi błąd, a wartość 0, jeśli wystąpią błędy nie.Jednakże, gdy przeznaczenie raportu jest okno komunikatu debugowania i użytkownik kliknie Retry przycisku, funkcje te zwracają 1.Jeśli użytkownik kliknie Abort przycisk w oknie Debugowanie wiadomości te funkcje natychmiast przerwać i nie zwracać wartość.

_RPT, _RPTF debugowania wywołanie makra _CrtDbgReport do debugowania ich generowania raportów.Wersje szerokich znaków tych makr, jak również _ASSERT [E, _RPTWn i _RPTFWn, użyj _CrtDbgReportW do debugowania ich generowania raportów.Gdy _CrtDbgReport lub _CrtDbgReportW zwraca 1, te makra uruchomić debugera, pod warunkiem, że jest włączone debugowanie just-in-time (JIT).

Uwagi

_CrtDbgReporti _CrtDbgReportW można wysłać raport debugowania do trzech różnych miejsc docelowych: plik raportu programu debug, monitor debugowania ( Visual Studio debuger), lub w oknie wiadomości programu debug.Dwie funkcje konfiguracji, _CrtSetReportMode i _CrtSetReportFile, są używane do określania miejsca przeznaczenia lub miejsc docelowych dla każdego typu raportu.Funkcje te umożliwiają raportowania przeznaczenia lub miejsc docelowych dla każdego typu raportu oddzielnie będą kontrolowane.Na przykład określić, że możliwe jest reportType z _CRT_WARN jedynie być wysłane do monitora debugowania, podczas gdy reportType z _CRT_ASSERT przesyłane okno wiadomości debugowania i plik raportu przez użytkownika.

_CrtDbgReportWWersja szerokich znaków jest _CrtDbgReport.Wszystkie jego parametry wyjściowe i ciągu są w ciągach znaków wide; w przeciwnym razie jest taka sama, jak wersja znaków jednobajtowych.

_CrtDbgReporti _CrtDbgReportW utworzyć wiadomość użytkownika dla raportu debugowania podstawiając argumentn argumenty doformat ciąg znaków, za pomocą tej samej reguły zdefiniowane przez printf lub wprintf funkcji.Funkcje te następnie wygenerować raport debugowania i określenia miejsca przeznaczenia lub miejsca docelowe, na podstawie bieżącej tryby raportu, a plik zdefiniowany dla reportType.Jeśli raport jest wysyłana do debugowania okno komunikatu, filename, lineNumber, i moduleName znajdują się informacje wyświetlane w oknie.

W poniższej tabeli przedstawiono dostępne opcje trybu raportu lub trybów i pliku i Wynikowe zachowanie _CrtDbgReport i _CrtDbgReportW.Opcje te są zdefiniowane jako flag bitowych w Crtdbg.h.

Tryb raportu

Plik raportu

_CrtDbgReport, _CrtDbgReportW zachowanie

_CRTDBG_MODE_DEBUG

Nie dotyczy

Zapisuje komunikat do systemu Windows OutputDebugString interfejsu API.

_CRTDBG_MODE_WNDW

Nie dotyczy

Wymaga systemu Windows MessageBox API do tworzenia okno komunikatu, aby wyświetlić wiadomość wraz z Abort, Retry, i Ignore przyciski.Jeśli użytkownik kliknie Abort, _CrtDbgReport lub _CrtDbgReport niezwłocznie przerywa.Jeśli użytkownik kliknie Retry, to zwraca wartość 1.Jeśli użytkownik kliknie Ignore, kontynuuje wykonywanie i _CrtDbgReport i _CrtDbgReportW zwraca wartość 0.Należy zauważyć, że kliknięcie Ignore podczas wystąpienia błędu istnieje często skutkuje "zachowanie niezdefiniowany."

_CRTDBG_MODE_FILE

__HFILE

Zapisuje wiadomość do dostarczonych przez użytkownika HANDLE, przy użyciu systemu Windows WriteFile API i nie sprawdza prawidłowość dojście do pliku; aplikacja jest odpowiedzialna za otwarcie pliku raportu i przekazując uchwyt prawidłowy plik.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDERR

Zapisuje wiadomość do stderr.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDOUT

Zapisuje wiadomość do stdout.

Sprawozdania mogą być wysyłane do jednego, dwóch lub trzech miejsc docelowych lub brak miejsca docelowego w ogóle.Aby uzyskać więcej informacji na temat określania trybu raportu lub trybów i plik raportu, zobacz _CrtSetReportMode i _CrtSetReportFile funkcji.Aby uzyskać więcej informacji dotyczących korzystania z makr debugowania i funkcje raportowania, zobacz Za pomocą makra dla weryfikacji i sprawozdawczości.

Jeśli aplikacja wymaga większej elastyczności niż dostarczone przez _CrtDbgReport i _CrtDbgReportW, można napisać funkcję swoje własne, raportowania i podłącz go do biblioteki uruchomieniowej C, mechanizm raportowania za pomocą _CrtSetReportHook funkcji.

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_CrtDbgReport

<crtdbg.h>

_CrtDbgReportW

<crtdbg.h>

Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.

Biblioteki

Debug wersje biblioteki uruchomieniowej c tylko.

Przykład

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

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

Zobacz crt_dbg2 na przykład zmienić funkcję raportu.

Odpowiednik w programie .NET Framework

Zobacz też

Informacje

Debugowania procedur

_CrtSetReportMode

_CrtSetReportFile

printf, _printf_l, wprintf, _wprintf_l

_DEBUG