Servizi diagnostici
La libreria MFC fornisce numerosi servizi diagnostici che rendono eseguendo il debug dei programmi più semplice.Questi servizi diagnostici includono le macro e le funzioni globali che consentono di tenere traccia delle allocazioni di memoria del programma, che esegue il dump del contenuto degli oggetti in fase di esecuzione e che stampa dei messaggi di debug in fase di esecuzione.Le macro e le funzioni globali per i servizi diagnostici sono suddivise nelle seguenti categorie:
Macro di diagnostica generali
Funzioni e variabili diagnostiche generali
Funzioni di diagnostica dell'oggetto
Queste macro e funzioni sono disponibili per tutte le classi derivate da CObject nelle versioni di Debug e di rilascio MFC.Tuttavia, tutte tranne DEBUG_NEW e VERIFICA non effettuare alcuna operazione nella versione di rilascio.
Nella libreria di debug, tutti i blocchi di memoria allocata è racchiusa a una serie di “byte di protezione.„ Se questi byte sono compromessi da una memoria errante scrivere, le procedure di diagnostica può segnalare un problema.Se si include la riga:
#define new DEBUG_NEW
nel file di implementazione, tutte le chiamate a new archiviano il nome file e il numero di riga in cui l'allocazione della memoria è stata eseguita.La funzione CMemoryState::DumpAllObjectsSince visualizzare queste informazioni aggiuntive, consentendo di identificare le perdite di memoria.Fare riferimento alla classe CDumpContext per ulteriori informazioni sull'output di diagnostica.
Inoltre, la libreria di runtime del linguaggio C supporta inoltre un insieme di funzioni diagnostiche che è possibile utilizzare per eseguire il debug delle applicazioni.Per ulteriori informazioni, vedere Procedura di Debug in riferimenti alla libreria di runtime.
Macro di diagnostica generali di MFC
Visualizza un messaggio e quindi arrestare il programma se l'espressione specificata restituisce FALSE nella versione di debug della libreria. |
|
Test che un oggetto è un oggetto della classe specificata o di una classe derivata dalla classe specificata. |
|
Verifica la validità interna di un oggetto chiamando la funzione membro di AssertValid ; in genere eseguito l'override da CObject. |
|
Fornisce un nome file e un numero di riga per tutte le allocazioni degli oggetti in modalità di debug per individuare perdite di memoria. |
|
Simile a ASSERT ma non verifica il valore dell'espressione; utile per il codice da eseguire solo in modalità di debug. |
|
Fornisce printffunzionalità di tipo nella versione di debug della libreria. |
|
Simile a ASSERT ma valuta l'espressione nella versione finale della raccolta e la versione di debug. |
Variabili di diagnostica generali e funzioni MFC
Variabile globale che invia le informazioni di CDumpContext alla finestra di output del debugger o a terminale di debug. |
|
Variabile globale che controlla il comportamento dell'allocatore di memoria di debug. |
|
La variabile globale utilizzato per il test SCODE passato per verificare se è un errore e, in caso affermativo, generato l'errore corrispondente. |
|
Controlla attualmente l'integrità di tutti memoria allocata. |
|
Se viene chiamato durante il debugger, dump dello stato di un oggetto durante il debug. |
|
Generare un'immagine dello stack corrente.Questa funzione è sempre collegata in modo statico. |
|
Abilita il dump delle perdite di memoria. |
|
Disattiva la memoria che tiene traccia e chiuderlo. |
|
Verifica che un blocco di memoria correttamente sia stato allocato. |
|
Verifica che un intervallo di indirizzi di memoria sia entro i limiti del programma. |
|
Determina se un puntatore a una stringa è valido. |
|
Abilita la chiamata di una funzione su ogni allocazione di memoria. |
Funzioni di diagnostica dell'oggetto MFC
Esegue una funzione specificata in qualsiasi CObjectdi classi derivate che supportano controllare il tipo di runtime. |
|
Esegue una funzione specificata in qualsiasi CObjectoggetti derivati da allocati con new. |