デバッグ情報を持たないデバッグモジュール (PDB)
ReSharper を使用すると、デバッグ情報(PDB)がなくても、あらゆるコンパイル済みモジュールをデバッグできます。 ReSharper はモジュールを逆コンパイルし、PDB を生成し、このモジュールの逆コンパイルされたシンボルを Visual Studio デバッガーに自動的に読み込みます。
前提条件
PDB がないモジュールをデバッグする前に、次の設定を確認してください。
ReSharper: オプションページで、 デバッガーの統合 チェックボックスが選択されていることを確認します。
Visual Studio: オプションページで、 このディレクトリにシンボルをキャッシュする フィールドに有効なディスクパス値があることを確認します。
Visual Studio: オプションページで、 マイコードだけを有効にする チェックボックスがオフになっていることを確認します。
ただし、これらの設定のいずれかまたは両方が期待通りの値でない場合でも、逆コンパイルされたモジュールからシンボルをロードしようとすると、ReSharper が自動で値を修正することを提案します。 この場合、 %LOCALAPPDATA%\Temp\SymbolCache がシンボルキャッシュディレクトリとして追加されます。
デバッグ
プログラムをデバッグする前、またはデバッグが開始された後、デバッグする各コンパイル済みモジュールのシンボルをロードする必要があります。 次のいずれかの方法で実行できます。
デバッグモードでは、Visual Studio のモジュールウィンドウ( )を開き、いくつかのモジュールの 1 つを選択し、選択を右クリックして、 ReSharper デコンパイラーでシンボルを読み込む を選択します。
プロセスエクスプローラーウィンドウ ( )で、複数の管理対象モジュールの 1 つ、1 つ以上のプロセスを選択して、コンテキストメニューで デバッグ有効化 を選択します。 プロセスを選択した場合、ReSharper はプロセス内のすべての管理対象モジュール用に存在しない PDB を生成してロードします。
移動コンパイルされたモジュール内の所望のシンボルへ、および逆コンパイルソースにブレークポイントを設定します。 ブレークポイントを設定したモジュールのシンボルがまだロードされていない場合、ReSharper はこのモジュールのデバッグを有効化できるポップアップを表示します:

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

最適化済みアセンブリ をデバッグする際、一部のデバッガー関数は利用できません。たとえばシンボルファイルが正しくてもローカル変数の値が見えない場合があります。 そのため、最適化を無効化することを検討してください。
Visual Studio がデバッグモードの時にアセンブリが最適化されているか確認するには、 モジュール ウィンドウ( )を開き、Optimized 列を確認します。
Visual Studio オプション( )で モジュールのロード時に JIT 最適化を抑制する チェックボックスを選択します。
すべての NGEN(pre-JIT)イメージ( *.ni.dll )の使用を無効にするには、環境変数
COMPLUS_ZapDisable=1を設定できます。 例と詳細については、次の記事を参照してください。
潜在的な問題
アセンブリがデバッグディレクトリなしでビルドされた場合、PDB が再生成されても、Visual Studio デバッガーはアセンブリ内のシンボルをマップできません。
例えば、このようなアセンブリは、プロジェクトのプロパティで None が選択されている場合( )、Visual Studio で作成される可能性があります。つまり、そのアセンブリには PDB もデバッグディレクトリも生成されません。
このようなアセンブリをデバッグしようとすると、この問題が PDB Generation Status ウィンドウに報告されます。