Eseguire il debug di applicazioni arrestate in modo anomalo e bloccate mediante i file di dump

Un file dump è uno snapshot di un'applicazione al momento che il dump viene preso.Mostra che processo in esecuzione e che moduli caricati in.Se il dump venga salvato con informazioni heap, il file dump contiene uno snapshot delle attività svolte in memoria dell'applicazione in quel momento.Aprire un file dump con un heap in Visual Studio 2012 è come arrestare un punto di interruzione in una sessione di debug.Sebbene non sia possibile continuare l'esecuzione, è possibile esaminare gli stack, i thread e i valori variabili dell'applicazione quando il dump si è verificato.

I dump vengono utilizzati principalmente per i problemi di debug che si verificano nei computer al quale lo sviluppatore non ha accesso.Ad esempio, è possibile utilizzare un file dump dal computer di un cliente quando non è possibile riprodurre l'arresto anomalo del cliente o bloccare nel computer.I dump vengono creati tester per salvare un arresto anomalo o bloccare i dati per poter utilizzare il sistema per più test.Il debugger di Visual Studio può salvare i file dump per gestito o nativo.Il debugger può caricare i file dump creati da Visual Studio o da altri programmi che salvano i file nel formato minidump.

In questo argomento

Requisiti e limitazioni

File dump, con o senza gli heap

Come creare un file dump

Individuare i file binari, i file di simboli (pdb) e i file di origine

Come aprire un file dump

Requisiti e limitazioni

  • I file dump di debug di codice ottimizzato è possibile generare confusione.Ad esempio, l'inline del compilatore di funzioni può comportare stack di chiamate imprevisti e altre ottimizzazioni possono modificare la durata delle variabili.

  • I file dump da computer a 64 bit deve essere eseguito il debug in un'istanza di Visual Studio in esecuzione su un computer a 64 bit.

  • Alcuni strumenti quali la Gestione attività e 64 bit WinDbg) utilizzano il formato a 64 bit per salvare i dump delle applicazioni a 32 bit che sono state eseguite in computer a 64 bit.Visual Studio non è possibile eseguire il debug di questi file dump.È consigliabile utilizzare Visual Studio per salvare i dump delle applicazioni a 32 bit in esecuzione su computer a 64 bit.

  • Visual Studio può eseguire il debug dei file dump delle applicazioni native dai dispositivi di ARM.Visual Studio può inoltre eseguire il debug dei file dump di applicazioni delle applicazioni gestite dai dispositivi di ARM, ma solo nel debugger nativo.

  • Per eseguire il modalità kernel debug dei file dump in Visual Studio 2012, scaricare Versione di Windows 8 degli strumenti di debug per windows.Vedere Debug del kernel in Visual Studio.

  • Visual Studio non è possibile eseguire il debug dei file dump salvati nel formato dump precedente noto come. dump completo in modalità utenteSi noti che un dump completo in modalità utente non corrisponde a un dump con l'heap.

  • Visual Studio non supporta il debug con SOS.dll (estensione del debugger SOS)

File dump, con o senza gli heap

È possibile creare file dump con o senza informazioni heap.

  • File dump con gli heap contiene uno snapshot della memoria dell'applicazione.Ciò include i valori delle variabili quando il dump è stato creato.Se si carica un file dump che è stato salvato con un heap, Visual Studio consente di caricare i simboli anche se il binario di applicazione non viene trovato.Visual Studio salva inoltre i binari dei moduli caricati nativi nel file dump, che può rendere il debug molto più semplice.

  • File dump senza heap è molto più piccolo dei dump con informazioni heap.Tuttavia, il debugger deve caricare i file binari di un'applicazione per trovare le informazioni sui simboli.I binari devono essere una corrispondenza esatta dei binari utilizzati al dump è stato creato.Solo i valori delle variabili dello stack vengono salvati in file dump dati senza heap.

Come creare un file dump

Per creare un file dump con Visual Studio:

  • Durante il debug di un processo in Visual Studio, è possibile salvare un file dump quando il debugger è stato interrotto a un'eccezione o un punto di interruzione.Scegliere Salva dump con nome, Debug.Nella finestra di dialogo Salva dump con nome, nell'elenco Salva come, è possibile selezionare o Minidump con HeapMinidump (impostazione predefinita).

  • Con Debug JIT è abilitato, è possibile connettere il debugger a un processo arrestatosi in modo anomalo all'esterno del debugger e salvare un file dump.Vedere Procedura: eseguire la connessione a un processo in esecuzione

È inoltre possibile creare file dump con qualsiasi programma che supporta il formato minidump di Windows.Ad esempio, l'utilità della Windows Sysinternals riga di comando Procdump da può essere creati i file del processo di dettagli arresto anomalo basati sui trigger o su richiesta.Vedere Requisiti e limitazioni in questo argomento per ulteriori informazioni sull'utilizzo di altri strumenti per creare i file dump.

Individuare i file binari, i file di simboli (pdb) e i file di origine

Per utilizzare le funzionalità di Visual Studio per eseguire il debug di un file dump, è necessario accedere a:

  • Il file EXE per cui il dump è stato creato e altri binari (DLL, e così via.) utilizzati nel processo del dump.

    Se si esegue il debug di un dump con i dati dell'heap, Visual Studio può fare fronte ai binari mancanti per alcuni moduli, ma deve essere sufficientemente binari per moduli generare gli stack di chiamate validi.Visual Studio include i moduli nativi in un file dump con l'heap.

  • File di simboli (pdb) per il file EXE e altri binari.

  • File di origine per i moduli a cui si è interessati.

    Il file eseguibile e i file PDB deve corrispondere esattamente alla versione e la compilazione dei file utilizzato quando il dump è stato creato.

    È possibile eseguire il debug utilizzando il disassembly moduli se non è possibile trovare i file di origine,

Percorsi di ricerca predefiniti per i file eseguibili

Visual Studio viene eseguita automaticamente in queste posizioni i file eseguibili che non sono inclusi nel file dump:

  1. La directory contenente il file dump.

  2. Il percorso del modulo specificato nel file dump.Questo è il percorso del modulo nel computer in cui è stato recuperato il dump.

  3. I percorsi di simboli specificati in Debug, Options, pagina Simboli di Visual Studio Strumenti, finestra di dialogo Options.È possibile aggiungere più percorsi di ricerca a questa pagina.

Utilizzando il binario alcun simbolo//pagine di origine

Se non è possibile trovare i file necessari per eseguire il debug di un modulo nel dump, viene visualizzata una pagina appropriata (Nessun valore binario trovato, Nessun simbolo trovato, o Nessuna origine trovata).Queste pagine forniscono informazioni dettagliate sulla causa del problema e vengono forniti collegamenti ad azioni che consentono di identificare la posizione corretta dei file.Vedere Trovare file di simboli (.pdb), di origine e binari.

Come aprire un file dump

  1. In Visual Studio, scegliere File, Apri, File.

  2. Individuare e selezionare il file dump nella finestra di dialogo Apri file.Il file dump in genere ha l'estensione dmp.Scegliere OK.

  3. Verrà visualizzata la finestra Riepilogo file dump.In questa finestra è possibile visualizzare informazioni di riepilogo sul debug del file dump, impostare il percorso dei simboli, avviare il debug e copiare le informazioni di riepilogo negli Appunti.

    Pagina di riepilogo minidump

  4. Per avviare il debug, passare alla sezione Azioni e scegliere Esegui debug con Solo nativo o Esegui debug con misto.

Vedere anche

Concetti

Debug JIT

Debug di codice più veloce esaminando la relativa cronologia con IntelliTrace

Altre risorse

Trovare file di simboli (.pdb), di origine e binari