Dump

Un dump è un file che contiene uno snapshot del processo al momento della creazione del dump e può essere utile per esaminare lo stato dell'applicazione. I dump possono essere usati per eseguire il debug dell'applicazione .NET quando è difficile collegarvi un debugger, ad esempio ambienti di produzione o CI. L'uso dei dump consente di acquisire lo stato del processo problematico ed esaminarlo senza dover arrestare l'applicazione.

Raccogliere dump

I dump possono essere raccolti in modi diversi, a seconda della piattaforma in cui è in esecuzione l'app.

Nota

I dump possono presentare informazioni riservate perché possono contenere la memoria completa del processo in esecuzione. Gestirli tenendo presente eventuali restrizioni e linee guida in materia di sicurezza.

Suggerimento

Per domande frequenti sulla raccolta di dump, l'analisi e altre puntualizzazioni, vedere Dump: domande frequenti.

  • È possibile usare le variabili di ambiente per configurare l'applicazione per raccogliere un dump in caso di arresto anomalo.

  • Si potrebbe voler raccogliere un dump quando l'app non si è ancora arrestata in modo anomalo. Ad esempio, se si vuole esaminare lo stato di un'applicazione che sembra essere in un deadlock, la configurazione delle variabili di ambiente per raccogliere i dump in caso di arresto anomalo non sarà utile perché l'app è ancora in esecuzione.

  • dotnet-dump è un semplice strumento da riga di comando multipiattaforma per raccogliere un dump. Diversi altri strumenti del debugger, come Visual Studio o windbg, hanno anche funzionalità di raccolta dump.

  • Se si esegue l'app nell'ambiente di produzione o la si esegue in modo distribuito (diversi servizi, repliche), dotnet-monitor offre il supporto per molti scenari comuni e indagini diagnostiche ad hoc, tra cui la raccolta e l'uscita di dump. Consente la raccolta di dump da remoto o con condizioni di attivazione.

Analizzare i dump

Analisi della memoria

È possibile eseguire l'analisi della memoria sull'applicazione se la memoria dell'app continua a crescere, ma non si è certi del motivo. L'esercitazione Eseguire il debug di una perdita di memoria illustra come eseguire il debug di una perdita di memoria usando gli strumenti dell'interfaccia della riga di comando dotnet con i comandi dotnet-sos dumpheap e gcroot.

L'analisi della memoria di Visual Studio può essere usata per diagnosticare una perdita di memoria in Windows.

Vedi anche

Altre informazioni su come è possibile sfruttare i dump per diagnosticare i problemi nell'applicazione .NET.