ダンプは、ダンプが作成された時点のプロセスのスナップショットを含むファイルであり、アプリケーションの状態を調べるのに役立ちます。 運用環境や CI 環境など、デバッガーをアタッチすることが困難な場合は、ダンプを使用して .NET アプリケーションをデバッグできます。 ダンプを使用すると、問題のあるプロセスの状態をキャプチャし、アプリケーションを停止しなくても調べることができます。
ダンプの収集
ダンプは、アプリが実行されているプラットフォームに応じて、さまざまな方法で収集できます。
注
ダンプには、実行中のプロセスの完全なメモリを含めることができるため、機密情報が含まれている可能性があります。 セキュリティの制限とガイダンスを念頭に置いて処理します。
環境変数を使用して、 クラッシュ時にダンプを収集するようにアプリケーションを構成できます。
アプリがまだクラッシュしていない場合は、ダンプを収集できます。 たとえば、デッドロック状態と思われるアプリケーションの状態を調べる場合、アプリがまだ実行されているため、クラッシュ時にダンプを収集するように環境変数を構成しても役に立ちません。
dotnet-dump は、ダンプを収集するための単純なクロスプラットフォーム コマンド ライン ツールです。 Visual Studio や windbg などの他のいくつかのデバッガー ツールにもダンプ収集機能があります。
運用環境でアプリを実行している場合、または分散方式 (複数のサービス、レプリカ) で実行している場合、 dotnet-monitor では、ダンプ収集やエグレスなど、多くの一般的なシナリオとアドホック診断調査がサポートされます。 これにより、ダンプをリモートまたはトリガー条件で収集できます。
ヒント
ダンプ収集に関するトラブルシューティングとよく寄せられる質問については、「 ダンプ: FAQ」を参照してください。
ダンプの分析
Linux で収集された ダンプの 分析に関する情報については、Linux ダンプのデバッグに移動します。
Windows で収集された ダンプの 分析に関する情報については、Windows ダンプのデバッグに移動します。
メモリの分析
アプリのメモリが増え続ける場合は、アプリケーションでメモリ分析を実行できますが、その理由がわからない場合があります。 デバッグ メモリ リークのチュートリアル では、dotnet-sos コマンド dumpheap と gcroot を使用して dotnet CLI ツールを使用してメモリ リークをデバッグする方法について説明します。
Visual Studio のメモリ分析 を使用して、Windows でのメモリ リークを診断できます。
こちらも参照ください
ダンプを利用して .NET アプリケーションの問題を診断する方法について説明します。
Linux ダンプのデバッグ チュートリアルでは、Linux で収集されたダンプをデバッグする方法について説明します。
デバッグ デッドロック のチュートリアルでは、ダンプを使用して .NET アプリケーションのデッドロックをデバッグする方法について説明します。
.NET