dotPeek をシンボルサーバーとして使用する
dotPeek はシンボルサーバーとして機能することができます。つまり、コンパイルされたアセンブリをデバッグするために必要な情報をデバッガーに提供できます。
Microsoft Symbol Server(英語) などの従来のシンボルサーバーとは対照的に、dotPeek はシンボルファイルを保存せず、要求されたアセンブリの PDB およびソースファイルを生成し、デバッガーに返します。
dotPeek Symbol Server を実行する
ツールバーのシンボルサーバーの起動 / 停止
をクリックします。
メインメニューの
を選択します。
dotPeek シンボルサーバーの最初の起動時に、シンボルファイルを生成するアセンブリを選択するように求められます。設定オプションについては、dotPeek シンボルサーバーの設定を参照してください。
dotPeek シンボルサーバーが起動すると、対応するアイコンがステータスバーに表示されます。その上にマウスポインタを置くと、そのアドレスと現在の設定を確認できます:

dotPeek シンボルサーバーを使用するには、デバッガー設定でそのアドレスを指定します。Microsoft Visual Studio では、構成は次のとおりです。
dotPeek シンボルサーバーを操作するために Visual Studio をセットアップする
Visual Studio メニューで、
を選択します。新しい場所を追加をクリックし、次のアドレスを指定します: http://localhost:33417/。(ポート番号は、dotPeek オプションの ページで設定できます。
Visual Studio オプションで、デバッグ | 一般ページに移動し、マイコードだけを有効にするチェックボックスをオフにします。
dotPeek Symbol Server の構成
dotPeek シンボルサーバーを使用すると、シンボルファイルを生成する正確なアセンブリを選択できます。正しい構成では、望ましくないシステムアセンブリや興味のないアセンブリへのステップアップを防ぐことができます。
メインメニューから
を選択し、左側の を選択します。- ラジオボタンを使用して、シンボルファイル(.pdb)を生成するオプションの 1 つを選択します。最初の 4 つの選択肢の意味は明らかです。最後の方法では、最も柔軟性があります。このオプションを選択した後は、デバッグに必要なアセンブリだけを選択して、アセンブリエクスプローラーで開くことができます。
必要に応じて、dotPeek シンボルサーバーに使用されるポート番号を変更することができます。
OK をクリックします。
考えられる問題と解決策
dotPeek シンボルサーバーに問題が発生した場合、最初にできることは、プロジェクト / PDB 生成ステータスウィンドウ(dotPeek のメニューの )を開くことです。ここでは、すべてのシンボルサーバータスクと、PDB を生成するおよびプロジェクトを生成するコマンドの結果を確認できます。デバッガーによって dotPeek シンボルサーバーから一部の PDB が要求されたが、生成されなかった場合、このウィンドウに対応するエントリとエラーメッセージが表示されます。
ほとんどの場合、ターゲットアセンブリが見つからないと問題が発生します。これを修正するには、アセンブリエクスプローラーでアセンブリを開くことができます。アセンブリの場所がわからない場合は、Visual Studio がデバッグモードのときに知ることができます - モジュールウィンドウ( )を開いてパス列を確認してください。
64 ビット Windows で dotPeek を実行している場合は、64 ビットバージョンの dotPeek を実行していることを確認してください(インストールディレクトリ %LOCALAPPDATA%\JetBrains\Installations\dotPeek[N] には dotPeek32.exe と dotPeek64.exe の 2 つの実行可能ファイルがあります)。
要求されたアセンブリがプロジェクト / PDB 生成ステータスウィンドウに表示されない場合、デバッガーはすでに対応するシンボルファイルを見つけており、dotPeek から要求していないことを意味します。シンボルファイルが正しく、ソースコードが利用可能な場合、すべてが正常であれば、dotPeek なしでアセンブリをデバッグできます。そうでない場合は、次を試してください。
問題のある PDB ファイルを削除または名前を変更します。Visual Studio がデバッグモードになっているときに、各アセンブリに対して実際の PDB ファイルの場所(存在する場合)を見つけることができます。モジュールウィンドウ( )を開き、シンボルファイル列を確認します。
PDB ファイルが別のシンボルサーバーから受信された場合は、このサーバーを無効にするか、シンボルサーバーのリスト(Visual Studio のオプションの
)で dotPeek シンボルサーバーを移動します。
最適化されたアセンブリをデバッグする場合、一部のデバッガー機能は使用できません。たとえば、シンボルファイルが正しい場合でも、ローカル変数の値は表示されません。そのため、最適化を無効にすることができます。
Visual Studio がデバッグモードのときにアセンブリが最適化されているかどうかを確認します。モジュールウィンドウ( )を開き、最適化列を確認します。
Visual Studio オプション(モジュールのロード時に JIT 最適化を抑制するチェックボックスを選択します。
)ですべての NGEN(pre-JIT)イメージ(*.ni.dll)の使用を無効にするには、環境変数
COMPLUS_ZapDisable=1
を設定できます。例と詳細については、次の記事を参照してください。
関連ページ:

アセンブリの開閉
Ctrl+OdotPeek を使用すると、任意の .NET アセンブリを開いたり、逆コンパイルしたり、内容を調べたりすることができます。C# コード、IL コード、または元のソースコードを PDB ファイルとシンボルサーバーを使用してローカルまたはリモートの場所からフェッチすることができるため、アセンブリをデコンパイルして表示できます。詳細は、コンパイル済みコードの表示オプションを参照してください。グローバルアセンブリキャッシュからアセンブリを開く (GAC) を使用して、特定のフォルダーでアセン...

プロジェクト / PDB 生成ステータスウィンドウ
このツールウィンドウは、シンボルファイルおよびプロジェクトの生成に関連するすべてのイベントを記録および表示します。このウィンドウの新規エントリは、次の場合に表示されます。dotPeek はシンボルサーバーとして機能します。この場合、シンボルファイルを生成するための各デバッガー要求は、新しいイベントとして表示されます。アセンブリの PDB ファイルを手動で生成します。アセンブリを Visual Studio プロジェクトにエクスポートします。生成中に何らかのエラーが発生すると、対応するエラーメッセー...

PDB ファイルを生成する
デバッガー以外の場所でシンボルファイルが必要な場合、dotPeek は、.NET アセンブリ用の(ソースファイルと共に)PDB ファイルを生成するコマンドを提供します。シンボルファイルを生成するとき、dotPeek は Visual Studio のシンボルキャッシュと同じディレクトリ構造を作成します。Visual Studio のシンボルキャッシュディレクトリを出力フォルダーとして設定すると、生成されたすべてのシンボルが自動的に Visual Studio デバッガーで使用できるようになります...

アセンブリをプロジェクトにエクスポート
アセンブリを探索する究極のステップは、アセンブリを Visual Studio プロジェクトにエクスポートして、ソースコードを参照してビルドおよびデバッグできるようにすることです。アセンブリで使用された元のプログラミング言語とは無関係に、エクスポートされたプロジェクトは C# を使用して作成されます。アセンブリを Visual Studio プロジェクトにエクスポートするアセンブリエクスプローラーウィンドウでアセンブリを選択し、ツールバーのプロジェクトにエクスポートをクリックするか、コンテキスト...