Registrazione delle allocazioni di memoria
Le informazioni contenute in questo argomento sono valide per:
Edizione |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
Solo nativo |
||||
Pro, Premium e Ultimate |
Solo nativo |
In MFC è possibile utilizzare la macro DEBUG_NEW anziché l'operatore new per un supporto nella ricerca di perdite di memoria. Nella versione di debug del programma, DEBUG_NEW tiene traccia del nome file e del numero di riga di ciascun oggetto da esso allocato. Quando si compila una versione di rilascio del programma, DEBUG_NEW si traduce in una semplice operazione new senza informazioni relative a nome file e numero di riga. La velocità non viene pertanto in alcun modo compromessa nella versione di rilascio del programma.
Se non si desidera riscrivere l'intero programma in modo da utilizzare DEBUG_NEW anziché new, sarà possibile definire questa macro nei file sorgente:
#define new DEBUG_NEW
Quando si esegue un dump di oggetti, ciascun oggetto allocato con DEBUG_NEW indicherà il file e il numero di riga in cui è stato allocato, consentendo di risalire all'origine delle perdite di memoria.
La versione di debug del framework MFC utilizza DEBUG_NEW automaticamente, a differenza del codice. Se si desidera godere dei vantaggi di DEBUG_NEW, sarà necessario utilizzare DEBUG_NEW esplicitamente oppure #define new come illustrato in precedenza.