Condividi tramite


_CrtSetReportHook

Installa una funzione di segnalazione definita dal client agganciandola al processo di creazione di report di debug della fase di runtime del linguaggio C (solo versione di debug).

_CRT_REPORT_HOOK _CrtSetReportHook( 
   _CRT_REPORT_HOOK reportHook 
);

Parametri

  • reportHook
    Nuova funzione di segnalazione definita dal client per associarsi al processo di creazione di report di debug della fase di runtime del linguaggio C.

Valore restituito

Restituisce la funzione di segnalazione precedente definita dal client.

Note

_CrtSetReportHook consente ad un'applicazione di utilizzare la propria funzione di segnalazione nel processo di debug della libreria di runtime del linguaggio C. Pertanto, ogni volta che _CrtDbgReport viene chiamato per generare un report di debug, viene chiamata per prima la funzione di segnalazione dell'applicazione. Questa funzionalità consente a un'applicazione di eseguire operazioni quali report di debug di filtro in modo da concentrarsi su tipi specifici di allocazione o inviare un rapporto in destinazioni non disponibili tramite _CrtDbgReport. Quando _DEBUG non è definito, le chiamate a _CrtSetReportHook vengono rimosse durante la pre-elaborazione.

Per una versione più avanzata di _CrtSetReportHook, vedere _CrtSetReportHook2.

La funzione _CrtSetReportHook installa la nuova funzione di segnalazione definita dal client specificata in reportHook e restituisce l'hook precedente definito dal client. Nell'esempio seguente viene illustrato come dovrebbe essere il prototipo di un report di hook definito dal client:

int YourReportHook( int reportType, char *message, int *returnValue );

dove reportType è il tipo di report di debug (_CRT_WARN, _CRT_ERROR, o _CRT_ASSERT), message è il messaggio utente di debug completamente assemblato da includere nel report e returnValue è il valore specificato dalla funzione di segnalazione definita dal client che deve essere restituito da _CrtDbgReport. Per una descrizione completa dei tipi di report disponibili, vedere la funzione _CrtSetReportMode.

Se la funzione di segnalazione definita dal client gestisce completamente il messaggio di debug in modo che non sia necessario alcun report ulteriore, la funzione deve restituire TRUE. Quando la funzione restituisce FALSE, _CrtDbgReport viene richiamato per generare un report di debug utilizzando le impostazioni correnti per il tipo, modalità e file di report. Inoltre, specificando il valore restituito da _CrtDbgReport in returnValue, l'applicazione può controllare anche quando si verifica un'interruzione di debug. Per una descrizione completa su come è configurato e generato il report di debug, vedere _CrtSetReportMode, _CrtSetReportFilee _CrtDbgReport.

Per ulteriori informazioni sull'utilizzo di altre funzioni di runtime hook e per la scrittura delle funzioni hook definite dal client, consultare Scrittura di funzioni hook di debug.

Nota

Se l'applicazione viene compilata con /clr e la funzione di segnalazione viene chiamata dopo che l'applicazione ha terminato l'esecuzione del main, CLR genererà un'eccezione se la funzione di segnalazione richiama una qualsiasi funzione CRT.

Requisiti

Routine

Intestazione obbligatoria

_CrtSetReportHook

<crtdbg.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

Librerie

Solo versioni di debug di Librerie di runtime C.

Equivalente .NET Framework

Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.

Vedere anche

Riferimenti

Routine di debug

_CrtGetReportHook