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