トレーニング
モジュール
Visual Studio Code デバッガーを使用して .NET アプリを対話形式でデバッグする - Training
Visual Studio Code を使用して .NET アプリを効率的にデバッグし、バグを迅速に修正する方法について学習します。 Visual Studio Code 内で対話型デバッガーを使用して、C# アプリケーションを分析し、修正します。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
この記事の対象: ✔️ .NET Core 3.0 SDK 以降のバージョン
ヒント
ダンプの収集、分析、その他の注意事項に関してよく寄せられる質問については、「ダンプ: FAQ」を参照してください。
Linux でダンプを収集するための推奨される 2 つの方法:
dotnet-dump
CLI ツールダンプが収集された後、dotnet-dump analyze
コマンドを使用して dotnet-dump
ツールを使用して分析できます。 この分析手順は、ダンプがキャプチャされた環境と同じアーキテクチャと Linux ディストリビューションを持つマシンで実行する必要があります。
dotnet-dump
ツールでは .NET コードに関する情報を表示できますが、C と C++ など、その他の言語に関するコード問題を理解する上では役に立ちません。
LLDB を使用して、Linux でダンプを分析することもできます。これにより、マネージドとネイティブの両方のコードを分析できます。 LLDB によって SOS 拡張機能が使用され、マネージド コードがデバッグされます。 dotnet-sos
CLI ツールを使用すると、マネージド コードをデバッグするための多くの便利なコマンドがある SOS をインストールできます。 .NET Core ダンプを分析するために、LLDB と SOS には、ダンプが作成された環境の次の .NET Core バイナリが必要です。
ほとんどの場合、これらのバイナリは、dotnet-symbol
ツールを使用してダウンロードできます。 必要なバイナリを dotnet-symbol
と共にダウンロードできない場合 (たとえば、ソースから構築された .NET Core のプライベート バージョンが使用中だった場合)、ダンプが作成された環境から、上に一覧表示されているファイルをコピーする必要がある場合があります。 ファイルがダンプ ファイルの横にない場合は、LLDB または SOS コマンドの setclrpath <path>
を使用して、読み込み元のパスを設定し、setsymbolserver -directory <path>
を使用して、シンボル ファイルの参照先のパスを設定することができます。
必要なファイルが使用できるようになったら、デバッグする実行可能ファイルとして dotnet ホストを指定し、LLDB にダンプを読み込むことができます。
lldb --core <dump-file> <host-program>
前に示されたのコマンド ラインでは、<dump-file>
は分析するダンプのパスであり、<host-program>
は .NET Core アプリケーションを起動したネイティブ プログラムです。 アプリが自己完結型である場合を除き、これは通常、dotnet
バイナリです。この場合、.dll 拡張子のないアプリケーションの名前になります。
LLDB が起動したら、setsymbolserver
コマンドを使用して、正しいシンボルの場所をポイントする必要がある場合があります (Microsoft のシンボル サーバーを使用する場合は setsymbolserver -ms
、ローカル パスを指定する場合は setsymbolserver -directory <path>
)。 ネイティブ シンボルを読み込むには、loadsymbols
を実行します。 この時点で、SOS コマンドを使用して、ダンプを分析することができます。
注意
LLDB は sudo apt-get install lldb
コマンドを使用してインストールできます
Linux コンピューターから収集されたダンプは、Visual Studio、Windbg、または dotnet-dump ツールを使用して Windows マシン上で分析することもできます。 Visual Studio と Windbg はどちらもネイティブ コードとマネージド コードを分析できますが、dotnet-dump はマネージド コードのみを分析します。
注意
Visual Studio バージョン 16.8 以降では、.NET Core 3.1.7 以降で生成された Linux ダンプを開き、分析することができます。
.NET に関するフィードバック
.NET はオープンソース プロジェクトです。 フィードバックを提供するにはリンクを選択します。
トレーニング
モジュール
Visual Studio Code デバッガーを使用して .NET アプリを対話形式でデバッグする - Training
Visual Studio Code を使用して .NET アプリを効率的にデバッグし、バグを迅速に修正する方法について学習します。 Visual Studio Code 内で対話型デバッガーを使用して、C# アプリケーションを分析し、修正します。