_CrtDumpMemoryLeaks
Esegue il dump di tutti i blocchi di memoria nell'heap di debug quando si è verificata una perdita di memoria (solo versione di debug).
int _CrtDumpMemoryLeaks( void );
Valore restituito
_CrtDumpMemoryLeaks restituisce TRUE se viene rilevata una perdita di memoria. In caso contrario, la funzione restituirà FALSE.
Note
La funzione _CrtDumpMemoryLeaks determina se si è verificata una perdita di memoria dall'esecuzione del programma. Quando viene trovata una perdita, le informazioni di intestazione di debug per tutti gli oggetti nell'heap vengono fornite in formato leggibile dall'utente. Quando _DEBUG non è definito, le chiamate a _CrtDumpMemoryLeaks vengono rimosse durante la pre-elaborazione.
_CrtDumpMemoryLeaks viene spesso chiamato alla fine dell'esecuzione del programma per verificare che la memoria allocata dall'applicazione sia stata liberata. La funzione può essere chiamata automaticamente alla chiusura del programma attivando il campo di bit _CRTDBG_LEAK_CHECK_DF del flag _crtDbgFlag utilizzando la funzione _CrtSetDbgFlag.
_CrtDumpMemoryLeaks chiama _CrtMemCheckpoint per ottenere lo stato corrente dell'heap e quindi analizza lo stato dei blocchi che non sono stati liberati. Quando un blocco unfreed viene rilevato, _CrtDumpMemoryLeaks chiama _CrtMemDumpAllObjectsSince per eseguire il dump delle informazioni per tutti gli oggetti allocati nell'inizio dell'esecuzione del programma.
Per impostazione predefinita, i blocchi interni di runtime C (_CRT_BLOCK) non sono inclusi nelle operazioni di dump della memoria. La funzione _CrtSetDbgFlag può essere utilizzata per attivare il bit _CRTDBG_CHECK_CRT_DF _crtDbgFlag per includere questi blocchi nel processo di rilevamento di perdite.
Per ulteriori informazioni sulle funzioni di stato dell'heap e la struttura _CrtMemState, consultare Funzioni per la creazione di report sullo stato dello heap. Per informazioni su come i blocchi di memoria vengono allocati, inizializzati e gestiti nella versione di debug dell'heap di base, consultare Informazioni dettagliate sull'heap di debug CRT.
Requisiti
Routine |
Intestazione obbligatoria |
---|---|
_CrtDumpMemoryLeaks |
<crtdbg.h> |
Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.
Librerie
Solo versioni di debug di Librerie di runtime C.
Esempio
Per un esempio su come utilizzare _CrtDumpMemoryLeaks, consultare crt_dbg1.
Equivalente .NET Framework
Non applicabile. Per chiamare la funzione standard C, utilizzare PInvoke. Per ulteriori informazioni, vedere Esempi di Invocazione della Piattaforma.