Udostępnij za pośrednictwem


_CrtDbgReport, _CrtDbgReportW

Umożliwia wygenerowanie raportu z komunikatem debugowania i wysyła raport do trzech możliwych docelowych (tylko w wersji 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
    Typ raportu: _CRT_WARN, _CRT_ERROR, i _CRT_ASSERT.

  • filename
    Wskaźnik do nazwy pliku źródłowego, na którym wystąpił potwierdzenia raportu lub NULL.

  • linenumber
    Numer w pliku źródłowym, na którym wystąpił potwierdzenia raportu wiersza lub NULL.

  • moduleName
    Wskaźnik do nazwę modułu (.exe lub .dll) gdzie potwierdzenia lub wystąpiła raportu.

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

  • argument
    Argumenty podstawienia opcjonalny używany przez format.

Wartość zwracana

Dla wszystkich raportów miejsc docelowych _CrtDbgReport i _CrtDbgReportW zwracać -1, jeśli wystąpi błąd i 0, jeśli nie zostaną napotkane żadne błędy.Jednak, gdy docelowa lokalizacja raportu jest okno komunikatu debugowania i użytkownik kliknie ponów przycisk, te funkcje zwracają 1.Jeśli użytkownik kliknie przycisk przerwania przycisk w oknie Debugowanie wiadomości tych funkcji natychmiast przerwania i nie zwraca wartości.

_RPT, _RPTF Debugowanie makra połączenie _CrtDbgReport do ich debugowania generowania raportów.Wersje całego znaku te makra oraz _ASSERT [E], _RPTWn i _RPTFWn, użyj _CrtDbgReportW do ich debugowania generowania raportów.Gdy _CrtDbgReport lub _CrtDbgReportW zwrócona wartość 1, te makra uruchomieniu debugera, pod warunkiem, że po prostu debugowanie-in-time (JIT) jest włączona.

Uwagi

_CrtDbgReporti _CrtDbgReportW wysłać raport debugowania w trzy różne miejsca docelowe: plik raportu debugowania, monitor debugowania ( Visual Studio debuger), lub okno komunikatu debugowania.Dwie funkcje konfiguracji, _CrtSetReportMode i _CrtSetReportFile, należy wypełnić w docelowym lub miejsca docelowe dla każdego typu raportu.Tych funkcji umożliwiają raportowania docelowym lub miejsca docelowe dla każdego typu raportu można sterować oddzielnie.Na przykład, użytkownik może określić, że reportType z _CRT_WARN tylko być wysyłane do monitor debugowania, podczas gdy reportType z _CRT_ASSERT wysłane do okno komunikatu debugowania i plik raportu zdefiniowanej przez użytkownika.

_CrtDbgReportWWersja wide znak jest _CrtDbgReport.Wszystkie jego danych wyjściowych i ciągu parametry są w całej ciągi; w przeciwnym razie jest taka sama, jak w wersji znaków.

_CrtDbgReporti _CrtDbgReportW utworzyć wiadomości użytkownika raportu debugowania, zastępując argument[n] argumenty na format ciąg znaków, przy użyciu tych samych reguł zdefiniowanych przez printf lub wprintf funkcji.Te funkcje następnie Generowanie raportu debugowania i określenia docelowym lub miejsc docelowych, w oparciu o bieżące tryby raportu i plików zdefiniowanych na potrzeby reportType.Po wysłaniu raportu do okno komunikatu debugowania filename, lineNumber, i moduleName zostaną uwzględnione w informacje wyświetlane w oknie.

W poniższej tabeli przedstawiono dostępne opcje dla trybu raportu lub tryby plików i wynikowe zachowanie _CrtDbgReport i _CrtDbgReportW.Opcje te są definiowane jako flagi bitowe w < crtdbg.h >.

Tryb raportu

Plik raportu

_CrtDbgReport, _CrtDbgReportW zachowanie

_CRTDBG_MODE_DEBUG

Nie dotyczy

Zapisuje komunikat przy użyciu systemu Windows OutputDebugString interfejsu API.

_CRTDBG_MODE_WNDW

Nie dotyczy

Wywołuje Windows MessageBox interfejsu API do tworzenia okno komunikatu do wyświetlania komunikatu o wraz z przerwania, ponów, i Ignoruj przycisków.Jeśli użytkownik kliknie przerwania, _CrtDbgReport lub _CrtDbgReport przerywa natychmiast.Jeśli użytkownik kliknie ponów, zwraca 1.Jeśli użytkownik kliknie Ignoruj, będzie nadal występował, wykonywanie i _CrtDbgReport i _CrtDbgReportW zwraca 0.Należy zauważyć, że kliknięcie Ignoruj kiedy warunek błędu istnieje często wyniki w "zachowanie niezdefiniowany."

_CRTDBG_MODE_FILE

__HFILE

Zapisuje komunikat do podanego użytkownika HANDLE, za pomocą systemu Windows WriteFile interfejsu API i nie należy sprawdzić, czy dojście do pliku; Aplikacja jest odpowiedzialna za otwieranie pliku raportu i przekazywania uchwytu prawidłowy plik.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDERR

Zapisuje komunikat do stderr.

_CRTDBG_MODE_FILE

_CRTDBG_FILE_STDOUT

Zapisuje komunikat do stdout.

Raport można wysłać do jednego, dwóch lub trzech miejsc docelowych lub nie miejsca docelowego w ogóle.Aby uzyskać więcej informacji na temat określania trybu raportu lub tryby i plik raportu, zobacz _CrtSetReportMode i _CrtSetReportFile funkcji.Aby uzyskać więcej informacji o korzystaniu z makra debugowania i funkcje raportowania, zobacz Makra raportowania.

Jeśli aplikacja wymaga większej elastyczności niż udostępniane przez _CrtDbgReport i _CrtDbgReportW, możesz zapisać własne raportowania funkcji i podłącz go do biblioteki czasu wykonywania C mechanizm raportowania za pomocą _CrtSetReportHook funkcji.

Wymagania

Procedura

Wymagany nagłówek

_CrtDbgReport

< crtdbg.h >

_CrtDbgReportW

< crtdbg.h >

_CrtDbgReporti _CrtDbgReportW są rozszerzenia firmy Microsoft.Aby uzyskać więcej informacji, zobacz zgodności.

Biblioteki

Debugowanie wersje C biblioteki czasu wykonywania tylko.

Przykład

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

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

Zobacz crt_dbg2 przykład sposobu zmiany funkcji raportu.

Odpowiednik w programie .NET Framework

Zobacz też

Informacje

Procedury debugowania

_CrtSetReportMode

_CrtSetReportFile

printf, _printf_l, wprintf, _wprintf_l

_DEBUG