ReSharper 2020.2ヘルプ

デバッグ情報のないデバッグモジュール (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はプロジェクト/ PDB生成ステータスウィンドウの進捗状況を表示します。

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

  • Visual Studioがデバッグモードのときにアセンブリが最適化されているかどうかを確認します。モジュールウィンドウ(デバッグ | Windows | モジュール)を開き、最適化列を確認します。

  • Visual Studioオプション(ツール | オプション | デバッグ | 一般)でモジュールのロード時にJIT最適化を抑制するチェックボックスを選択します。

  • すべてのNGEN(pre-JIT)イメージ(*.ni.dll)の使用を無効にするために、環境変数 COMPLUS_ZapDisable=1を設定できます。例と詳細については、以下の記事を参照してください。

最終更新日:

関連ページ:

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

ReSharper | Windows | プロセスエクスプローラーProcess Explorerウィンドウには、現在実行中のプロセスの一覧が表示され、モジュールの探索と.NETアセンブリであるプロセスの逆コンパイルが可能です。Windowsタスクマネージャー(またはSysinternals Pr...

コンパイル済みコードをナビゲートする

ソリューションはプロジェクトのソースコードに限定されず、ソリューションで使用されているライブラリへの参照も含まれています。あたかもそれらがあなたのソリューションの一部であるかのようにそれらのライブラリからシンボルにナビゲートするためのアクセスと機会を持つことは非常に便利です。ReSharperは、組...

プロジェクト/ PDB生成ステータスウィンドウ

ReSharper | Windows | Pdbの生成ステータスこのツールウィンドウは、シンボルファイルおよびプロジェクトの生成に関連するすべてのイベントを記録および表示します。このウィンドウの新規エントリは、次の場合に表示されます。アセンブリのPDBファイルを手動で生成します。アセンブリをVis...

デバッグ支援

ReSharperを使用すると、エディターでのデバッグ経験を向上させることができます。ReSharperオプション(Alt+R O)の環境 | 製品と機能ページでデバッガ統合チェックボックスをオフにすると、デバッグ支援機能を無効にできます。インライン値:C#、VB.NET、またはC++コードのデバッ...