Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un file di dump è uno snapshot che mostra il processo in esecuzione e i moduli caricati per un'app in un momento specifico. Un dump con informazioni sull'heap include anche un'istantanea della memoria dell'app a quel punto.
L'apertura di un file di dump con un heap in Visual Studio è simile all'arresto in un punto di interruzione in una sessione di debug. Anche se non è possibile continuare l'esecuzione, è possibile esaminare gli stack, i thread e i valori delle variabili dell'app al momento del dump.
I dump vengono usati principalmente per eseguire il debug dei problemi dai computer a cui gli sviluppatori non hanno accesso. Puoi usare un file di dump dal computer di un cliente quando non riesci a riprodurre un arresto anomalo o un programma non rispondente sul tuo computer. I tester creano anche file di dump per salvare i dati del programma che si arresta in modo anomalo o non risponde da usare per altri test.
Il debugger di Visual Studio può salvare i file di dump per codice gestito o nativo. Può eseguire il debug dei file di dump creati da Visual Studio o da altre app che salvano i file nel formato minidump .
Requisiti e limitazioni
- Per eseguire il debug dei file di dump da computer a 64 bit, Visual Studio deve essere in esecuzione in un computer a 64 bit.
- Visual Studio può eseguire il debug dei file di dump delle app gestite dal sistema operativo Linux.
- Visual Studio può eseguire il debug dei file di dump delle app native dai dispositivi ARM. Può anche eseguire il debug dei dump delle app gestite dai dispositivi ARM, ma solo nel debugger nativo.
- Per eseguire il debug dei file di dump in modalità kernel o usare l'estensione di debug SOS.dll in Visual Studio, scaricare gli strumenti di debug per Windows disponibili nel Windows Driver Kit (WDK).
- Visual Studio non può eseguire il debug di file di dump salvati nel vecchio formato full user-mode dump. Un dump in modalità utente completa non è uguale a un dump con heap.
- Il debug dei file di dump del codice ottimizzato può generare confusione. Ad esempio, l'inlining del compilatore di funzioni può comportare stack di chiamate imprevisti e altre ottimizzazioni potrebbero modificare la durata delle variabili.
Generare file dump con o senza heap
I file di dump possono avere o meno informazioni sull'heap.
I file di dump con heap contengono uno snapshot della memoria dell'app, inclusi i valori delle variabili, al momento del dump. Visual Studio salva anche i file binari dei moduli nativi caricati in un file di dump con un heap, in modo da semplificare il debug. Visual Studio può caricare i simboli da un file di dump con un heap, anche se non riesce a trovare un binario dell'applicazione.
I file di dump senza heap sono molto più piccoli dei dump con heap, ma il debugger deve caricare i file binari dell'app per trovare le informazioni sui simboli. I file binari caricati devono corrispondere esattamente a quelli in esecuzione durante la creazione del dump. I file di dump senza heap salvano solo i valori delle variabili dello stack.
Creare un file di dump
Durante il debug di un processo in Visual Studio, è possibile salvare un file di dump quando il debugger è stato arrestato in corrispondenza di un'eccezione o di un punto di interruzione.
Con Just-In-Time Debug abilitato, è possibile collegare il debugger di Visual Studio a un processo arrestato in modo anomalo all'esterno di Visual Studio e quindi salvare un file di dump dal debugger. Vedere Connettersi ai processi in esecuzione.
Per salvare un file dump:
Quando il debug si arresta in corrispondenza di un errore o di un punto di interruzione, selezionare Debug>Salva dump come.
Nella finestra di dialogo Salva dump come, sotto Salva come tipo, selezionare Minidump o Minidump con Heap (impostazione predefinita).
Passare a un percorso e selezionare un nome per il file di dump e quindi selezionare Salva.
Annotazioni
È possibile creare file di dump con qualsiasi programma che supporti il formato minidump di Windows. Ad esempio, l'utilità della riga di comando Procdump di Windows Sysinternals può generare file di dump dei crash di processo in base a trigger o su richiesta. Per informazioni sull'uso di altri strumenti per creare file di dump, vedere Requisiti e limitazioni .
Aprire un file di dump
In Visual Studio selezionare File>apri>file.
Nella finestra di dialogo Apri file individuare e selezionare il file di dump. In genere avrà un'estensione .dmp . Seleziona OK.
La finestra Riepilogo file minidump mostra il riepilogo e le informazioni sui moduli del file di dump, e le azioni che si possono intraprendere.
In Azioni:
- Per impostare i percorsi di caricamento dei simboli, selezionare Imposta percorsi dei simboli.
- Per avviare il debug, selezionare Debug con solo gestito, Debug con misto, Debug con solo nativo.
- Per analizzare la memoria gestita, selezionare Debug della memoria gestita e consultare Report sui tipi gestiti.
- Per eseguire un analizzatore di memoria nel dump, selezionare Esegui analisi diagnostica e vedere Eseguire il debug di un dump della memoria gestita con analizzatori di diagnostica .NET.
Trova .exe, file .pdb e file sorgente
Per usare le funzionalità di debug complete in un file di dump, Visual Studio deve:
- Il .exe file per cui è stato creato il dump e altri file binari (ad esempio DLL) usati dal processo di dump.
- File simbolo (.pdb) per .exe e altri binari.
- I file.exe e pdb che corrispondono esattamente alla versione e alla compilazione dei file al momento della creazione del dump.
- File di origine per i moduli pertinenti. È possibile usare il disassembly dei moduli se non è possibile trovare i file di origine.
Se il dump contiene dati heap, Visual Studio può gestire i file binari mancanti per alcuni moduli, ma deve avere file binari per un numero sufficiente di moduli per generare stack di chiamate validi.
Percorsi di ricerca per i file di .exe
Visual Studio cerca automaticamente i file .exe che non sono inclusi nel file dump:
- Cartella contenente il file di dump.
- Il percorso del modulo specificato dal file di dump, ovvero il percorso del modulo nel computer che ha raccolto il dump.
- Percorsi dei simboli specificati in Strumenti (o Debug) >Opzioni>Debug>simboli. È possibile aprire anche la pagina Simboli dal pannello Azioni della finestra Riepilogo del file di dump. In questa pagina è possibile aggiungere altre posizioni per la ricerca.
Utilizzare le pagine No Binary, No Symbols o No Source Found
Se Visual Studio non riesce a trovare i file necessari per eseguire il debug di un modulo nel dump, visualizza una pagina Nessuna trovata binaria, Nessun simbolo trovato o Nessuna origine trovata . Queste pagine forniscono informazioni dettagliate sulla causa del problema e forniscono collegamenti di azione che consentono di individuare i file. Vedere Specificare il simbolo (con estensione pdb) e i file di origine.