web-dev-qa-db-ja.com

Visual Studio2012でシンボルをロードする方法

アプリをデバッグしているときに、次のメッセージが表示されます。

pDBファイルが見つからないか開くことができません

アプリのデバッグ中にPDBファイルの場所を指定できたことを覚えているようです。これどうやってするの? Visual Studio2012を使用しています。

17
john d

シンボルの追加場所

設定を開きます:ツール->オプション->デバッグ->シンボルそして.PDBファイルが置かれているディレクトリを追加します。

このメニューが配置されているVisual Studioインターフェイスのスクリーンショット

プロジェクトごとのようにカスタムパスを追加できます。また、VisualStudioがすべての.pdbキャッシュを保存する共通パスを編集することもできます。

ビルド後のスクリプトの作成

すべての.pdbを1つのフォルダーにコピーする、各プロジェクトのコンパイル後イベントで作成しました。これにより、すべてが1か所にまとめられます。しかし、あなたはそれを別々に保存することができます、それは場所のリストを編集するたびに必要なので、私はそれほど便利ではないと思いました。

。pdbと.dllをSymbolsキャッシュの場所にコピーするデバッグ後のスクリプトの例:

xcopy /Y /R "$(TargetDir)$(ProjectName).pdb" "D:\VS_CACHE\"
xcopy /Y /R "$(TargetDir)$(ProjectName).dll" "D:\VS_CACHE\"

シンボルが見つからない場合の問題の解決

デバッグモードで、何らかの理由でシンボルが見つからない場合は、複数の理由が考えられます:

  1. Symbolsキャッシュに.pdbがありますが、古くなっています(コードにブレークポイントを設定してホバーすると、この場合に取得できます)
  2. コードのこの部分を使用する複数の.dllがあります(この場合、コードにブレークポイントを設定してホバーすると取得できます)
  3. シンボルがロードされていません。この場合、Debug-> Windows-> Modulesに移動し、必要なモジュールをロードしようとして確認できます。

Visual Studioインターフェイスモジュールのスクリーンショット->シンボルの読み込み

デバッグをより簡単にする:

実行中のアプリケーションにVSデバッガーを再接続するには、次の無料のVisual Studioアドオン(VS 2015をサポート)を使用することをお勧めします。

ReAttach:visualstudiogallery.msdn.Microsoft.com/8cccc206-b9de-42ef-8f5a-160ad0f017ae

それはあなたに多くの時間を節約します! :)

9
Ony