_CrtSetReportHook
Instaluje funkcję raportowania zdefiniowaną przez klienta, podłączając ją do procesu raportowania debugowania w czasie wykonywania języka C (tylko wersja debugowania).
Składnia
_CRT_REPORT_HOOK _CrtSetReportHook(
_CRT_REPORT_HOOK reportHook
);
Parametry
reportHook
Nowa funkcja raportowania zdefiniowana przez klienta w celu przyłączenia się do procesu raportowania debugowania w czasie wykonywania języka C.
Wartość zwracana
Zwraca poprzednią funkcję raportowania zdefiniowaną przez klienta.
Uwagi
_CrtSetReportHook
umożliwia aplikacji korzystanie z własnej funkcji raportowania w procesie raportowania biblioteki debugowania w czasie wykonywania języka C. W związku z tym za każdym razem, gdy _CrtDbgReport
jest wywoływany w celu wygenerowania raportu debugowania, funkcja raportowania aplikacji jest wywoływana jako pierwsza. Ta funkcja umożliwia aplikacji wykonywanie operacji, takich jak filtrowanie raportów debugowania, dzięki czemu może skupić się na określonych typach alokacji lub wysłać raport do miejsc docelowych, które nie są dostępne za pomocą polecenia _CrtDbgReport
. Gdy _DEBUG
nie jest zdefiniowana, wywołania do _CrtSetReportHook
są usuwane podczas przetwarzania wstępnego.
Aby uzyskać bardziej niezawodną wersję programu _CrtSetReportHook
, zobacz _CrtSetReportHook2
.
Funkcja _CrtSetReportHook
instaluje nową funkcję raportowania zdefiniowaną przez klienta określoną w reportHook
pliku i zwraca poprzedni punkt zaczepienia zdefiniowany przez klienta. W poniższym przykładzie pokazano, jak powinien być prototypowany punkt zaczepienia raportów zdefiniowany przez klienta:
int YourReportHook( int reportType, char *message, int *returnValue );
gdzie reportType
jest typem raportu debugowania (_CRT_WARN
, _CRT_ERROR
, lub _CRT_ASSERT
), message
jest w pełni złożony komunikat debugowania użytkownika, który ma być zawarty w raporcie, i returnValue
jest wartością określoną przez funkcję raportowania zdefiniowaną przez klienta, która powinna być zwracana przez _CrtDbgReport
. Aby uzyskać pełny opis dostępnych typów raportów, zobacz _CrtSetReportMode
funkcję .
Jeśli funkcja raportowania zdefiniowanego przez klienta całkowicie obsługuje komunikat debugowania, tak aby nie było wymagane dalsze raportowanie, funkcja powinna zwrócić wartość TRUE
. Gdy funkcja zwraca FALSE
wartość , _CrtDbgReport
jest wywoływana w celu wygenerowania raportu debugowania przy użyciu bieżących ustawień dla typu raportu, trybu i pliku. Ponadto, określając wartość zwracaną _CrtDbgReport
w returnValue
pliku , aplikacja może również kontrolować, czy występuje przerwa w debugowaniu. Pełny opis sposobu konfigurowania i generowania raportu debugowania można znaleźć w temacie _CrtSetReportMode
, _CrtSetReportFile
i _CrtDbgReport
.
Aby uzyskać więcej informacji na temat używania innych funkcji czasu wykonywania z obsługą haka i pisania własnych funkcji punktów zaczepienia zdefiniowanych przez klienta, zobacz Debugowanie zapisywania funkcji haka.
Uwaga
Jeśli aplikacja jest kompilowana z /clr i funkcja raportowania jest wywoływana po zakończeniu działania aplikacji głównej, clR zgłosi wyjątek, jeśli funkcja raportowania wywołuje jakiekolwiek funkcje CRT.
Wymagania
Procedura | Wymagany nagłówek |
---|---|
_CrtSetReportHook |
<crtdbg.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Biblioteki
Debugowanie tylko wersji bibliotek czasu wykonywania języka C.