Udostępnij przez


_RPT, , _RPTF, _RPTW, _RPTFW makra

Śledzi postęp aplikacji, generując raport debugowania (tylko wersja debugowania). Sufiks n określa liczbę argumentów w argselemencie i może mieć wartość 0, 1, 2, 3, 4 lub 5.

Składnia

_RPTn(
   reportType,
   format,
   ...[args]
);
_RPTFn(
   reportType,
   format,
   [args]
);
_RPTWn(
   reportType,
   format
   [args]
);
_RPTFWn(
   reportType,
   format
   [args]
);

Parametry

reportType
Typ raportu: _CRT_WARN, _CRT_ERRORlub _CRT_ASSERT.

format
Ciąg kontrolki formatu używany do tworzenia komunikatu użytkownika.

args
Argumenty podstawienia używane przez format.

Uwagi

Wszystkie te makra przyjmują reportType parametry i format . Ponadto mogą również przyjmować maksymalnie cztery kolejne argumenty, oznaczane przez numer dołączony do nazwy makra. Na przykład _RPT0 i _RPTF0 nie weź więcej argumentów _RPT1 i _RPTF1 weź arg1wartości , _RPT2 i _RPTF2 weź arg1 i arg2itd.

Makra _RPT i _RPTF są podobne do printf funkcji, ponieważ mogą służyć do śledzenia postępu aplikacji podczas procesu debugowania. Jednak te makra są bardziej elastyczne niż printf dlatego, że nie muszą być ujęte w #ifdef instrukcji, aby zapobiec wywoływaniu ich w kompilacji detalicznej aplikacji. Ta elastyczność jest osiągana przy użyciu _DEBUG makra; _RPT makra i _RPTF są dostępne tylko wtedy, gdy flaga jest zdefiniowana _DEBUG . Gdy _DEBUG nie jest zdefiniowana, wywołania tych makr są usuwane podczas wstępnego przetwarzania.

Makra _RPTW i _RPTFW to wersje wieloznaczny tych makr. Są one podobne wprintf i przyjmują ciągi szerokoznakowe jako argumenty.

Makra _RPT powodują wywołanie _CrtDbgReport funkcji w celu wygenerowania raportu debugowania z komunikatem użytkownika. Makra _RPTW powodują wywołanie funkcji w celu wygenerowania _CrtDbgReportW tego samego raportu z znakami szerokimi. Makra _RPTF i _RPTFW tworzą raport debugowania z plikiem źródłowym i numerem wiersza, w którym zostało wywołane makro raportu, oprócz komunikatu użytkownika. Komunikat użytkownika jest tworzony przez podstawianie arg[n] argumentów w format ciągu przy użyciu tych samych reguł zdefiniowanych przez printf funkcję.

_CrtDbgReport lub _CrtDbgReportW generuje raport debugowania i określa jego lokalizacje docelowe na podstawie bieżących trybów raportu i pliku zdefiniowanego dla reportTypeprogramu . Funkcje _CrtSetReportMode i _CrtSetReportFile służą do definiowania miejsc docelowych dla każdego typu raportu.

_RPT Jeśli makro jest wywoływane i _CrtSetReportMode_CrtSetReportFile nie zostało wywołane, komunikaty są wyświetlane w następujący sposób:

Typ raportu Miejsce docelowe danych wyjściowych
_CRT_WARN Tekst ostrzeżenia nie jest wyświetlany.
_CRT_ERROR Okno podręczne. Tak samo jak w przypadku _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_WNDW); określenia.
_CRT_ASSERT Tak samo jak _CRT_ERROR.

Gdy miejsce docelowe jest oknem komunikatu debugowania, a użytkownik wybierze przycisk _CrtDbgReport Ponów próbę lub _CrtDbgReportW zwróci wartość 1. Ta wartość zwracana powoduje, że te makra uruchamiają debuger, jeśli debugowanie just in time (JIT) jest włączone. Aby uzyskać więcej informacji na temat używania tych makr jako mechanizmu obsługi błędów debugowania, zobacz Makra do raportowania.

Istnieją dwa inne makra, które generują raport debugowania. Makro _ASSERT generuje raport, ale tylko wtedy, gdy argument wyrażenia zwróci wartość FALSE. _ASSERTE jest dokładnie taki jak _ASSERT, ale zawiera wyrażenie, które nie powiodło się w wygenerowanym raporcie.

Wymagania

Macro Wymagany nagłówek
_RPT Makra <Crtdbg.h>
_RPTF Makra <Crtdbg.h>
_RPTW Makra <Crtdbg.h>
_RPTFW Makra <Crtdbg.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Biblioteki

Debugowanie tylko wersji bibliotek czasu wykonywania języka C.

Mimo że te makra są dostępne w przypadku dołączenia crtdbg.helementu do uruchomienia, aplikacja musi łączyć się z jedną z bibliotek debugowania, ponieważ te makra nazywają inne funkcje czasu wykonywania.

Przykład

Zobacz przykład w _ASSERT artykule.

Zobacz też

Procedury debugowania