ReSharper 2024.3 ヘルプ

デバッグ情報を持たないデバッグモジュール (PDB)

ReSharper を使用すると、たとえデバッグ情報(PDB)がなくても、コンパイルされたモジュールをデバッグすることができます。ReSharper はモジュールを逆コンパイルし、PDB を生成し、このモジュールの逆コンパイルされたシンボルを Visual Studio デバッガーに自動的に読み込みます。

前提条件

PDB がないモジュールをデバッグする前に、次の設定を確認してください。

  • ReSharper:ReSharper | オプション | 環境 | 製品と機能オプションページで、デバッガーの統合チェックボックスが選択されていることを確認します。

  • Visual Studio: ツール | オプション | デバッグ | シンボルオプションページで、このディレクトリにシンボルをキャッシュするフィールドに有効なディスクパス値があることを確認します。

  • Visual Studio: ツール | オプション | デバッグ | 一般オプションページで、マイコードだけを有効にするチェックボックスがオフになっていることを確認します。

ただし、これらの設定のどちらかまたは両方に期待値がない場合でも、逆コンパイルされたモジュールからシンボルをロードしようとすると、ReSharper はこれらの値を自動的に修正することを提案します。この場合、%LOCALAPPDATA%\Temp\SymbolCache がシンボルキャッシュディレクトリとして追加されます。

デバッグ

プログラムをデバッグする前、またはデバッグが開始された後、デバッグする各コンパイル済みモジュールのシンボルをロードする必要があります。次のいずれかの方法で実行できます。

  • デバッグモードでは、Visual Studio のモジュールウィンドウ(デバッグ | Windows | モジュール)を開き、いくつかのモジュールの 1 つを選択し、選択を右クリックして、ReSharper デコンパイラーでシンボルを読み込むを選択します。

  • プロセスエクスプローラーウィンドウReSharper | Windows | プロセスエクスプローラー)で、複数の管理対象モジュールの 1 つ、1 つ以上のプロセスを選択して、コンテキストメニューでデバッグを有効にするを選択します。プロセスを選択した場合、ReSharper はプロセス内のすべての管理対象モジュールに対して存在しない PDB を生成してロードします。

  • 移動コンパイルされたモジュール内の所望のシンボルへ、および逆コンパイルソースにブレークポイントを設定します。ブレークポイントを設定したモジュールのシンボルがまだロードされていない場合、ReSharper は、このモジュールのデバッグを有効にできるポップアップを表示します。

    ReSharper: enabling debugging for compiled module

シンボルの逆コンパイルとロードには時間がかかる場合があるため、上記のいずれかの方法でプロセスを開始すると、ReSharper は Project/PDB Generation Status ウィンドウに進行状況を表示します。

ReSharper: Project/PDB Generation Status window

最適化されたアセンブリをデバッグする場合、一部のデバッガー関数は使用できません。たとえば、シンボルファイルが正しい場合でも、ローカル変数の値は表示されません。最適化を無効にすることをお勧めします。

潜在的な問題

アセンブリがデバッグディレクトリなしでビルドされた場合、PDB が再生成されても、Visual Studio デバッガーはアセンブリ内のシンボルをマップできません。

例: プロジェクトプロパティ(ビルド | 拡張 | デバッグ情報)でなしが選択されている場合、このようなアセンブリは Visual Studio で作成される可能性があります。つまり、アセンブリに対して PDB もデバッグディレクトリも生成されません。

このようなアセンブリをデバッグしようとすると、この問題が PDB Generation Status ウィンドウに報告されます。

関連ページ:

プロセスエクスプローラーウィンドウ

Process Explorer ウィンドウには、現在実行中のプロセスの一覧が表示され、モジュールの探索と .NET アセンブリであるプロセスの逆コンパイルが可能です。コンテキストメニューコマンド:デバッグを有効にするこのコマンドは、選択された管理対象モジュールまたは選択されたプロセス内のすべての管理対象モジュールの PDB を生成します。Visual Studio オプションで指定されたシンボルキャッシュディレクトリへの生成がすぐに開始されます。ディレクトリが指定されていない場合、ReSha...

コンパイルされたコードを移動する

ソリューションはプロジェクトのソースコードに限定されず、ソリューションで使用されているライブラリへの参照も含まれています。あたかもそれらがあなたのソリューションの一部であるかのようにそれらのライブラリからシンボルに移動するためのアクセスと機会を持つことは非常に便利です。ReSharper は、組み込みの逆コンパイラーと、コンパイルされたコードを見て移動するのに役立つ多くの機能を提供します。コンパイルされたアセンブリからのシンボルのコードプレゼンテーションは、設定、PDB 情報の可用性、適用された...

予測デバッガー

プログラムをデバッグすると、通常はその現在の状態が表示され、すでに実行されたコードを分析できます。関数にステップインした場合、追加のステップアクションを適用するまで、関数の本体内で何が起こっているかはわかりません。予測デバッガーを使用すると、ステップを実行せずに、現在のステートメントの後に何が起こるかを確認できます。コードがバックグラウンドで実行され、次のインサイトが得られます。変数の期待値を表示します。実行されないメソッド部分を視覚的に「ミュート」します。それ以降の実行は例外で終了することを警...

NuGet パッケージを検索、探索、インストールする

ReSharper を使用すると、NuGet パッケージギャラリーで型または名前空間を検索し、一致するパッケージをチェックし、その内容を分析し、目的のパッケージをインストールすることができます。NuGet パッケージを探す:NuGet パッケージの検索を開始する最も簡単な方法は、未解決の名前空間で使用できる対応するアクションを使用することです。... とタイプ: いずれの場合でも、ReSharper は NuGet ブラウザーウィンドウを開き、目的のタイプまたは名前空間を含むすべてのパッケージ...