次の方法で共有


Visual Studio デバッガーでシンボル (.pdb) ファイルとソース ファイルを指定する (C#、C++、Visual Basic、F#)

プログラム データベース (.pdb) ファイルは、シンボル ファイルとも呼ばれ、プロジェクトのソース コード内の識別子とステートメントを、コンパイル済みアプリの対応する識別子と命令にマップします。 これらのマッピング ファイルは、デバッガーをソース コードにリンクし、デバッグを有効にします。

Visual Studio IDE から標準のデバッグ ビルド構成でプロジェクトをビルドすると、コンパイラによって適切なシンボル ファイルが作成されます。 この記事では、IDE でシンボル ファイルを管理する方法について説明します。次に例を示します。

シンボル ファイルの詳細については、「 シンボル ファイルと Visual Studio のシンボル設定について」を参照してください。

シンボル ファイルのしくみ

.pdb ファイルには、アプリのデバッグ構成の増分リンクを可能にするデバッグとプロジェクトの状態情報が保持されます。 Visual Studio デバッガーでは 、.pdb ファイルを使用して、デバッグ中に次の 2 つの重要な情報が決定されます。

  • Visual Studio IDE に表示するソース ファイル名と行番号
  • アプリ内でブレークポイントを設定する場所

シンボル ファイルには、ソース ファイルの場所と、必要に応じて取得元のサーバーも表示されます。

デバッガーは、アプリのビルド時に作成された .pdb ファイル (つまり、元の .pdb ファイルまたはコピー) と完全に一致する .pdb ファイルのみを読み込みます。 コード自体が変更されていない場合でもアプリのレイアウトが変更される可能性があるため、この正確な重複が必要です。 詳細については、「Visual Studio でビルドされたバイナリ ファイルと完全に一致するようにデバッガー シンボル ファイルが必要な理由」を参照してください。

ヒント

プロジェクトのソース コード (Windows コードやプロジェクトが呼び出すサード パーティ製コードなど) の外部でコードをデバッグするには、外部コードの .pdb ファイル (および必要に応じてソース ファイル) の場所を指定する必要があります。これは、アプリ内のビルドと完全に一致する必要があります。

デバッガーがシンボルを検索する場所

Visual Studio IDE でプロジェクトをデバッグすると、デバッガーは既定で見つけることができるシンボル ファイルを自動的に読み込みます。

リモート デバイスでマネージド コードをデバッグする場合、すべてのシンボル ファイルはローカル コンピューターまたは デバッガー オプションで指定された場所に配置する必要があります。

デバッガーは、指定された順序で、次の場所にあるシンボル ファイルを検索します。

  1. プロジェクト フォルダー。

  2. DLL または実行可能ファイル (.exe) ファイル内で指定された場所。

    既定では、コンピューター上に DLL または .exe ファイルをビルドした場合、リンカーは、関連付けられている .pdb ファイルの完全なパスとファイル名を DLL または .exeファイルに 配置します。 デバッガーは、シンボル ファイルがその場所に存在するかどうかを確認します。

  3. DLL または .exe ファイルと同じフォルダー。

  4. シンボル ファイルのデバッガー オプションで指定された場所。 シンボルの場所を追加して有効にするには、「 シンボルの場所と読み込みオプションを構成する」を参照してください。

    • 任意のローカル シンボル キャッシュ フォルダー。

    • 指定されたネットワーク、インターネット、またはローカル シンボル サーバーと場所 (選択されている場合は Microsoft シンボル サーバーなど)。 Visual Studio では、 symsrv プロトコルを実装するシンボル サーバーからデバッグ シンボル ファイルをダウンロードできます。 Visual Studio Team Foundation ServerDebugging Tools for Windows は、シンボル サーバーを使用できる 2 つのツールです。

      使用できるシンボル サーバーは次のとおりです。

      パブリック Microsoft シンボル サーバー: システム DLL またはサードパーティ ライブラリの呼び出し中に発生するクラッシュをデバッグするには、多くの場合、システム .pdb ファイルが必要です。 システム .pdb ファイルには、Windows DLL、 .exe ファイル、およびデバイス ドライバーのシンボルが含まれています。 Windows オペレーティング システム、MDAC、IIS、ISA、および .NET のシンボルは、パブリック Microsoft シンボル サーバーから取得できます。

      内部ネットワーク上またはローカル コンピューター上のシンボル サーバー: チームまたは会社は、独自の製品のシンボル サーバーを作成し、外部ソースからのシンボルのキャッシュとして作成できます。 独自のコンピューターにシンボル サーバーがある場合があります。

      サード パーティのシンボル サーバー: Windows アプリケーションとライブラリのサード パーティプロバイダーは、インターネット上のシンボル サーバーへのアクセスを提供できます。

警告

パブリック Microsoft シンボル サーバー以外のシンボル サーバーを使用する場合は、シンボル サーバーとそのパスが信頼できることを確認します。 シンボル ファイルには任意の実行可能コードを含めることができるため、セキュリティ上の脅威にさらされる可能性があります。

シンボル ファイルの場所と読み込みオプションを構成する

デバッガーは、既定でシンボルのさまざまな場所をチェックします。 詳細については、「 デバッガーがシンボルを検索する場所」を参照してください。

ツール (またはデバッグ) >Options メニューから、デバッグ>Symbols オプションにアクセスできます。

  • シンボル ファイルの検索パスを指定して選択します。
  • Microsoft、Windows、またはサード パーティのコンポーネントのシンボル サーバーを指定します。
  • デバッガーでシンボルを自動的に読み込むか、または自動的に読み込まないモジュールを指定します。
  • アクティブなデバッグ中にこれらの設定を変更します。 デバッグ中のシンボルの読み込みを参照してください。

シンボルの場所と読み込みオプションを指定するには:

  1. [ツール] (または [デバッグ] >Options) ウィンドウを開き、[すべての設定]>[デバッグ>General>Symbols>Search Locations] セクションを展開します。

  2. 右側のウィンドウで、目的のサーバー ( Microsoft シンボル サーバーNuGet.org シンボル サーバーなど) のチェック ボックスをオンにします。

  3. [シンボル ファイル (.pdb) の場所] グループ ボックスのツール バーで [+ 追加] を選択して、新しいシンボル サーバーの場所を追加します。

    テキスト フィールドに、シンボル サーバーまたはシンボルの場所の URL (http)、ネットワーク共有、またはローカル パスを入力します。 文の補完機能は、正しいフォーマットを見つけるのに役立ちます。

    Visual Studio で新しいシンボル サーバーの場所を追加する方法を示すスクリーンショット。

    指定したフォルダーのみが検索されます。 検索するサブフォルダーのエントリを追加する必要があります。

    [ 有効] チェック ボックスをオンにし、[保存] を選択 します

  4. [新しい Azure DevOps シンボル サーバーの場所] リンクを選択して、Azure DevOps シンボル サーバーの場所を追加します。

    [ Azure DevOps シンボル サーバーへの接続 ] ダイアログで、使用可能なシンボル サーバーを選択し、[ 接続] を選択します。

    Visual Studio で新しい Azure DevOps シンボル サーバーの場所を追加する方法を示すスクリーンショット。

    詳細については、「 Azure Artifacts シンボル サーバーの追加」を参照してください。

    • シンボルの場所の読み込み順序を変更するには、 Ctrl + UpCtrl + Down を使用するか、[ 上へ移動 ] と [ 下へ移動] を選択します。
    • URL またはパスを編集するには、エントリをダブルクリックするか、エントリを強調表示して [編集] を選択します。
    • エントリを削除するには、エントリを強調表示し、[削除] を選択 します
  1. [ツール] (または [デバッグ] >Options) ダイアログを開き、[デバッグ>Symbols] セクションを展開します。

  2. [ シンボル ファイル (.pdb) の検索場所 ] グループ ボックスで、目的のサーバー ( Microsoft シンボル サーバーシンボル サーバー NuGet.org など) のチェック ボックスをオンにします。

  1. シンボル ファイル (.pdb) の検索場所グループボックスのツールバーで、新しい場所 (+) を選択して、新しいシンボル サーバーの場所を追加します。

    テキスト フィールドに、シンボル サーバーまたはシンボルの場所の URL (http)、ネットワーク共有、またはローカル パスを入力します。 文の補完機能は、正しいフォーマットを見つけるのに役立ちます。

    新しいシンボル サーバーの場所を追加する方法を示すスクリーンショット。

    指定したフォルダーのみが検索されます。 検索するサブフォルダーのエントリを追加する必要があります。

  1. [シンボル ファイル (.pdb) の検索場所] グループ ボックスのツール バーで [新しい場所] (+) を選択して、新しいシンボル サーバーの場所を追加します。

    テキスト フィールドに、シンボル サーバーまたはシンボルの場所の URL (http)、ネットワーク共有、またはローカル パスを入力します。 文の補完機能は、正しいフォーマットを見つけるのに役立ちます。

    新しいシンボル サーバーの場所を追加する方法を示すアニメーション。

    指定したフォルダーのみが検索されます。 検索するサブフォルダーのエントリを追加する必要があります。

  1. グループ ボックスのツール バーで [新しい Azure DevOps シンボル サーバーの場所] を選択して、Azure DevOps シンボル サーバーの新しい場所を追加します。

    [ Azure DevOps シンボル サーバーへの接続 ] ダイアログで、使用可能なシンボル サーバーを選択し、[ 接続] を選択します。

    詳細については、「 Azure Artifacts シンボル サーバーの追加」を参照してください。

    • シンボルの場所の読み込み順序を変更するには、Ctrl + Up および Ctrl + Down を使用するか、上下のアクションを選択します。
    • URL またはパスを編集するには、エントリをダブルクリックするか、エントリを強調表示して F2 キーを押します。
    • エントリを削除するには、エントリを強調表示し、[ 場所の削除 ] (-) を選択します。
  1. (省略可能)コピーしたシンボルのローカル フォルダー パスを指定することで、シンボルの読み込みパフォーマンスを向上させます。

    [このディレクトリ内のシンボルをキャッシュする] オプションで、シンボル サーバーがシンボルをコピーできるローカル フォルダー パスを入力します。

    • C:\Windows やサブフォルダーなどの保護されたフォルダーにローカル シンボル キャッシュを配置しないでください。 代わりに読み取り/書き込みフォルダーを使用してください。

    • _NT_SYMBOL_PATH環境変数が設定されている場合、この値は、このディレクトリ値のキャッシュ シンボルをオーバーライドします

  2. デバッガーの起動時にシンボル ファイル (.pdb) の場所から読み込むモジュールを指定します。

    1. [>Debugging>General>Symbols>Search and Load セクションに変更します。

    2. ドロップダウン リストを使用して、[ シンボルの自動検索 ] オプションの値を設定します。

      • 検索するモジュール シンボルを自動的に選択 する (推奨): Visual Studio で検索して読み込むシンボルを決定できるようにします。 既定では、Visual Studio は、開いているソリューションによってビルドされたシンボルを自動的に読み込み、一般的なデバッグ操作を実行するために必要なその他のシンボルを読み込みます。 このオプションにより、Visual Studio で検索して読み込む必要があるファイルの数が減り、デバッガーのパフォーマンスが向上します。 含まれるモジュールの一覧を作成することで、他のシンボルを強制的に読み込むことができます。

        [検索するモジュール シンボルを自動的に選択する] オプションを選択して構成する方法を示すスクリーンショット。

      • 除外しない限り、すべてのモジュール シンボルを検索します。Visual Studio でデバッグ プロセス内のすべてのシンボルを読み込むよう強制します。 デバッグ エクスペリエンスが遅くなる可能性があるため、このオプションはお勧めしません。 除外されるモジュールの一覧を作成することで、Visual Studio で特定のシンボルを無視するように強制できます。

        [除外しない限り、すべてのモジュール シンボルを検索する] オプションを選択して構成する方法を示すスクリーンショット。

    [ デバッグ>Symbols ] セクションで、[ シンボル検索の基本設定 ] オプションの値を選択します。

    [シンボル検索の基本設定] オプションを選択して構成する方法を示すスクリーンショット。

    • 検索するモジュール シンボルを自動的に選択 する (推奨): Visual Studio で検索して読み込むシンボルを決定できるようにします。 既定では、Visual Studio は、開いているソリューションによってビルドされたシンボルを自動的に読み込み、一般的なデバッグ操作を実行するために必要なその他のシンボルを読み込みます。 このオプションにより、Visual Studio で検索して読み込む必要があるファイルの数が減り、デバッガーのパフォーマンスが向上します。 含まれるモジュールの一覧を作成することで、他のシンボルを強制的に読み込むことができます。

    • 除外しない限り、すべてのモジュール シンボルを検索します。Visual Studio でデバッグ プロセス内のすべてのシンボルを読み込むよう強制します。 デバッグ エクスペリエンスが遅くなる可能性があるため、このオプションはお勧めしません。 除外されるモジュールの一覧を作成することで、Visual Studio で特定のシンボルを無視するように強制できます。

    • 除外しない限り、すべてのモジュールを読み込みます (既定): 明示的に除外するモジュールを除き、シンボル ファイルの場所にあるすべてのモジュールのすべてのシンボルを読み込みます。

      特定のモジュールを除外するには、[ 除外するモジュールの指定] を選択します。 [ 追加] (+) を選択し、除外するモジュールの名前を入力して、[ OK] を選択します

    • 指定したモジュールのみを読み込む: シンボル ファイルの場所から指定したモジュールのみを読み込みます。

      モジュールを識別するには、[ 含まれるモジュールの指定] を選択します。 [ 追加] (+) を選択し、含めるモジュールの名前を入力して、[ OK] を選択します。 他のモジュールのシンボル ファイルは読み込まれません。

  1. 設定を適用するには、[ OK] を選択します

モジュール フィルターを指定する

[ ... を自動的に選択 する] オプションと [ すべての ... を検索 する] オプションの両方を使用すると、デバッグ中に検索するシンボルを制御できます。

[ 検索するモジュール シンボルを自動的に選択する ] オプションで、[ 含まれるモジュール ] リストを作成して検索リストを指定します。

含まれているモジュールの一覧を作成する方法を示すスクリーンショット。

  1. リスト ツールバーで [ + 追加] を選択します。

  2. [ 項目の追加 ] ダイアログで、[ モジュール名] を入力し、[ 有効 ] チェック ボックスをオンにして、[保存] を選択 します

  3. 必要に応じて、さらに項目をリストに追加します。

[ モジュール フィルターの指定 ] リンクを選択して、検索リストを指定します。

[モジュール フィルターの指定] リンクを選択する方法を示すスクリーンショット。

[ 検索するモジュール シンボルを自動的に選択する ] オプションの [ 自動シンボル検索の基本設定 ] ダイアログボックスが開きます。

モジュール フィルターの指定のスクリーンショット。

[モジュール] フィルターの一覧を作成するには、[新しいモジュール] (+) を選択し、新しいモジュールを入力して、[OK] を選択します

モジュール フィルターは、単純なワイルドカード マッチングをサポートします。 アスタリスク * は、任意の文字グループと一致します。 たとえば、 *myproduct* 、myproduct.utilities.dllentrypoint.myproduct.exeなどのファイルと一致します。

その他のオプションを構成して、エクスペリエンスをカスタマイズできます。

  • モジュールの横にあるシンボルを常に読み込む: Visual Studio は、ファイル システムに格納されている .pdb ファイルを、対応する .dll ファイルまたは .exe ファイルと共に読み込みます。 この方法は、デプロイされた Web アプリのデバッグを試みる場合などに役立ちます。

  • 必要に応じて追加のシンボルを自動的に読み込む: Visual Studio では、ステップ実行するモジュールがプロジェクトまたはモジュール フィルターにない場合でも、ステップ実行などの一般的なデバッグ アクションを実行するシンボルを検索します。 検索の決定方法は、[ マイ コードのみ ] 設定の影響を受ける可能性があります。

[ 除外しない限り、すべてのモジュール シンボルを検索 する] オプションで、[ 除外されたモジュール ] リストを作成して検索リストを指定します。

除外されたモジュールの一覧を作成する方法を示すスクリーンショット。

  1. リスト ツールバーで [ + 追加] を選択します。

  2. [ 項目の追加 ] ダイアログで、[ モジュール名] を入力し、[ 有効 ] チェック ボックスをオンにして、[保存] を選択 します

  3. 必要に応じて、さらに項目をリストに追加します。

[ 除外しない限り、すべてのモジュール シンボルを検索 する] オプションの [ シンボルの除外設定 ] ダイアログボックスが開きます。

除外されたモジュールを指定するスクリーンショット。

[モジュール] フィルターの一覧を作成するには、[新しいモジュール] (+) を選択し、新しいモジュールを入力して、[OK] を選択します

このダイアログでは、Visual Studio でシンボルを読み込 まない モジュールを選択できます。 このシナリオでは、Visual Studio は、一致するフィルターを追加して除外しない限り、デバッグ プロセス内のすべてのモジュール (Microsoft 以外のパーティによるモジュールを含む) のシンボルの読み込みを試みます。 この動作を変更できる唯一の方法は、 マイ コードのみの 設定です。

デバッグ用のその他のシンボル オプション

[ツール] (または [デバッグ] ) >[オプション] メニューから、その他のデバッグ シンボル オプションを選択できます。

次の設定は、 すべての設定>Debugging>General セクションで使用できます。

デバッグ>General セクションでは、次の設定を使用できます。

  • dll エクスポートの読み込み (ネイティブのみ):C/C++ 用の DLL エクスポート テーブルを読み込みます。 詳細については、 DLL エクスポート テーブルを参照してください。 DLL エクスポート情報の読み取りにはオーバーヘッドが伴うので、エクスポート テーブルの読み込みは既定でオフになっています。 C/C++ ビルド コマンド ラインで dumpbin /exports を使用することもできます。

  • アドレス レベルのデバッグを有効に し、 ソースが使用できない場合は逆アセンブリを表示します。ソース ファイルまたはシンボル ファイルが見つからない場合は、常に逆アセンブリを表示します。

  • ソース サーバーのサポートを有効にする: ソース サーバーを使用して、ローカル コンピューターにソース コードがない場合、または .pdb ファイルがソース コードと一致しない場合にアプリをデバッグします。 ソース サーバーは、ファイルの要求を受け取り、ソース管理から実際のファイルを返します。 ソース サーバーは、 srcsrv.dll という名前の DLL を使用してアプリの .pdb ファイルを読み取ることによって実行されます。 .pdb ファイルには、ソース コード リポジトリへのポインターと、リポジトリからソース コードを取得するために使用されるコマンドが含まれています。

    アプリの .pdb ファイルから実行できる srcsrv.dll コマンドを制限するには、許可されているコマンドをsrcsrv.iniという名前のファイルに一覧表示します。 srcsrv.ini ファイルを srcsrv.dllおよびdevenv.exe と同じフォルダーに配置します

    重要

    任意のコマンドをアプリの .pdb ファイルに埋め込むことができるので、実行するコマンドのみを srcsrv.ini ファイルに配置してください。 srcsvr.ini ファイルにないコマンドを実行しようとすると、確認ダイアログがトリガーされます。 詳細については、「 セキュリティ警告: デバッガーは信頼されていないコマンドを実行する必要があります」を参照してください。

    コマンド パラメーターに対して検証は実行されないため、信頼できるコマンドには注意してください。 たとえば、 srcsrv.iniにcmd.exe を一覧表示した 場合、悪意 のあるユーザーが cmd.exe のパラメーターを指定して危険な可能性があります。

    必要なサポート設定を選択します。 部分 信頼アセンブリのソース サーバーを許可する (管理のみ) と、オプション を求めずに信頼されていないソース サーバー コマンドを常に実行 すると、セキュリティ上のリスクが高まる可能性があることに注意してください。

コンパイラ シンボル オプション

Visual Studio IDE から標準の デバッグ ビルド構成を使用してプロジェクトをビルドすると、C++ とマネージド コンパイラによってコードに適したシンボル ファイルが作成されます。 コードでコンパイラ オプションを設定することもできます。

Visual Studio でビルド構成のコンパイラ オプションを設定するには、「 デバッグ構成とリリース構成を設定する」を参照してください。

.NET オプション

/debug を使用してビルドし、.pdb ファイルを作成します。 /debug:full または /debug:pdbonly を使用してアプリケーションをビルドできます。 /debug:full を使用してビルドすると、デバッグ可能なコードが生成されます。 /debug:pdbonly を使用してビルドすると .pdb ファイルが生成されますが、デバッグ情報が使用可能であることを JIT コンパイラに指示するDebuggableAttributeは生成されません。 デバッグできないリリース ビルドの .pdb ファイルを生成する場合は、/debug:pdbonly を使用します。 詳細については、 /debug (C# コンパイラ オプション) または /debug (Visual Basic) を参照してください。

C/C++ オプション

  • VC<x>.pdb ファイルと <project>.pdb ファイル

    /ZI または /Zi を使用してビルドすると、C/C++ 用の .pdb ファイルが作成されます。 Visual C++ では、コンパイラが作成する .pdb ファイルに /Fd オプションの名前を付けます。 IDE を使用して Visual Studio でプロジェクトを作成すると、/Fd オプションが設定され、 という名前の < ファイルが作成されます。

    メイクファイルを使用して C/C++ アプリケーションをビルドし、/Fd を使用せずに /ZI または /Zi を指定してファイル名を指定すると、コンパイラによって 2 つの .pdb ファイルが作成されます。

    • VC<x>.pdbここで、<x> は、Vc11.pdb などの Microsoft C++ コンパイラのバージョンを表します

      VC<x>.pdb ファイルは、個々のオブジェクト ファイルのすべてのデバッグ情報を格納し、プロジェクトメイクファイルと同じディレクトリに存在します。 C/C++ コンパイラは、オブジェクト ファイルを作成するたびに、デバッグ情報を VC<x>.pdb にマージします。 したがって、すべてのソース ファイルに <windows.h> などの共通ヘッダー ファイルが含まれている場合でも、それらのヘッダーの typedef は、すべてのオブジェクト ファイルではなく 1 回だけ格納されます。 挿入された情報には型情報が含まれますが、関数定義などのシンボル情報は含まれません。

    • <project>.pdb (英語)

      <project>.pdb ファイルは、プロジェクトの .exe ファイルのすべてのデバッグ情報を格納し、\debug サブディレクトリに存在します。 <project>.pdb ファイルには、VC<x>.pdb で見つかった型情報だけでなく、関数プロトタイプを含む完全なデバッグ情報が含まれています。

    VC<x>.pdb ファイルと <project>.pdb ファイルの両方で増分更新が可能です。 リンカーは、 .pdb ファイルへのパスも、作成する .exe または .dll ファイルに埋め込みます。

  • DLL エクスポート テーブル

    dumpbin /exportsを使用して、DLL のエクスポート テーブルで使用できるシンボルを確認します。 DLL エクスポート テーブルからのシンボリック情報は、Windows メッセージ、Windows プロシージャ (WindowProcs)、COM オブジェクト、マーシャリング、またはシンボルのない DLL を操作する場合に役立ちます。 シンボルは、任意の 32 ビット システム DLL で使用できます。 呼び出しは呼び出し元の順序で一覧表示され、現在の関数 (最も深く入れ子になっている関数) が先頭に表示されます。

    dumpbin /exports出力を読み取ることで、英数字以外の文字を含む正確な関数名を確認できます。 関数名を正確に表示することは、関数にブレークポイントを設定する場合に便利です。関数名はデバッガー内の別の場所で切り捨てられる可能性があるためです。 詳細については、dumpbin /exportsを参照してください。

Web アプリケーション

ASP.NET アプリケーションの web.config ファイルをデバッグ モードに設定します。 デバッグ モードでは、ASP.NET は動的に生成されたファイルのシンボルを生成し、デバッガーが ASP.NET アプリケーションにアタッチできるようにします。 Web プロジェクト テンプレートからプロジェクトを作成した場合、デバッグを開始すると、Visual Studio によって自動的に設定されます。

デバッグ中にシンボルを読み込む

モジュール呼び出し履歴ローカル自動、または任意のウォッチ ウィンドウを使用して、デバッグ中にシンボルを読み込んだり、シンボル オプションを変更したりできます。 詳細については、「デバッガーをアプリにアタッチする方法について理解を深める」を参照してください。

[モジュール] ウィンドウでシンボルを操作する

デバッグ中、[ モジュール ] ウィンドウには、デバッガーがユーザー コードまたはマイ コードとして扱っているコード モジュールと、そのシンボルの読み込み状態が表示されます。 また、[モジュール] ウィンドウでシンボルの読み込み状態の監視、シンボルの読み込み、シンボル オプション の変更を 行うこともできます。

デバッグ中にシンボルの場所またはオプションを監視または変更するには:

  1. [モジュール] ウィンドウを開くには、デバッグ中に [デバッグ>Windows>Modules] を選択します (または Ctrl + Alt + U キーを押します)。

  2. [ モジュール ] ウィンドウで、[ シンボルの状態] ヘッダーまたは [ シンボル ファイル ] ヘッダー、または任意のモジュールを右クリックします。

  3. コンテキスト メニューで、次のいずれかを選択します。

    選択肢 説明
    シンボルの読み込み スキップされた、見つからない、またはシンボルが読み込まれていないモジュールに表示されます。 [ツール>オプション] ウィンドウの [>Debugging>Symbols>検索と読み込みまたは検索の場所] セクションで指定した場所からシンボルを読み込もうとします。 シンボル ファイルが見つからないか、読み込まれていない場合は、 エクスプローラー を起動して、検索する新しい場所を指定できます。
    シンボルの読み込み情報 読み込まれたシンボル ファイルの場所、またはデバッガーでファイルが見つからない場合に検索された場所を示します。
    シンボル設定 [ツール>オプション] ペインを開き、[すべての設定]>[デバッグ>シンボル>検索場所]セクションを開き、シンボルの場所を編集したり追加したりできます。
    常に自動的に読み込む 選択したシンボル ファイルを、デバッガーによって自動的に読み込まれるファイルの一覧に追加します。
    ソースからシンボル ファイルへの逆コンパイル .NET コードの場合は、このオプションを選択し、「アセンブリの ソースの生成と埋め込み」の手順に従うことができます。
    選択肢 説明
    シンボルの読み込み スキップされた、見つからない、またはシンボルが読み込まれていないモジュールに表示されます。 デバッグ>Symbols セクションの [ツール>オプション] ダイアログで指定した場所からシンボルを読み込もうとします。 シンボル ファイルが見つからないか、読み込まれていない場合は、 エクスプローラー を起動して、検索する新しい場所を指定できます。
    シンボルの読み込み情報 読み込まれたシンボル ファイルの場所、またはデバッガーでファイルが見つからない場合に検索された場所を示します。
    シンボル設定 [ ツール>オプション ] ダイアログボックスを開き、[ デバッグ>Symbols ] セクションでシンボルの場所を編集および追加できます。
    常に自動的に読み込む 選択したシンボル ファイルを、デバッガーによって自動的に読み込まれるファイルの一覧に追加します。
    ソースからシンボル ファイルへの逆コンパイル .NET コードの場合は、このオプションを選択し、「アセンブリの ソースの生成と埋め込み」の手順に従うことができます。

[シンボルが読み込まれていない/ソースが読み込まれていない] ページを使用する

シンボル ファイルやソース ファイルが利用できないコードにデバッガーが直接割り込むには、数通りの方法があります。

  • コードにステップ インします。
  • ブレークポイントまたは例外でコードを中断します。
  • 別のスレッドに切り替えます。
  • [コールスタック] ウィンドウでフレームをダブルクリックして、スタックフレームを変更します。

この場合、デバッガーは必要なシンボルまたはソースを見つけて読み込むのに役立つ [ シンボル読み込まれていません] または [ソースが読み込まれていない ] ページを表示します。

[シンボルが読み込まれていない] ページのスクリーンショット。

「シンボルが読み込まれていません」のドキュメント ページを使用して、見つからないシンボルを検索して読み込むには:

  • 検索パスを変更するには、選択されていないパスを選択するか、[ 新しいパス ] または [ 新しい VSTS パス ] を選択し、新しいパスを入力または選択します。 [ 読み込み] を選択してパスをもう一度検索し、シンボル ファイルが見つかった場合は読み込みます。

  • シンボル オプションをオーバーライドして検索パスを再び試すには、[<executable-name> を参照して探す] を選びます。 シンボル ファイルが見つかった場合は読み込まれます。または、シンボル ファイルを手動で選択できるように エクスプローラー が開きます。

  • シンボル設定ページを開いて動作を構成するには、[シンボル設定の変更] を選択します (または、[ツール>オプション] ウィンドウを開き>設定>Symbols>検索と読み込みまたは検索の場所] セクションに移動します。
  • シンボル設定ページを開いて動作を構成するには、[ シンボル設定の変更] を選択します (または、[ ツール>オプション ] ダイアログを開き、[ デバッグ>Symbols ] セクションに移動します。
  • (詳細)逆アセンブリを新しいウィンドウに 1 回表示するには、[ 逆アセンブリの表示] を選択するか、[ オプション] ダイアログを 選択して、ソース ファイルまたはシンボル ファイルが見つからない場合に常に逆アセンブリを表示するようにオプションを設定します。 詳細については、「 逆アセンブリ コードの表示」を参照してください。

  • 検索された場所と結果を表示するには、[ シンボルの読み込み情報] を展開します。

  • C# コードの場合は、[シンボルの読み込みなし] ページまたは [ソースの読み込みなし] ページからソース コードを逆コンパイルすることもできます。

いずれかのオプションを実行した後に デバッガーで .pdb ファイルが検出され、 .pdb ファイル内の情報を使用してソース ファイルを取得できる場合は、ソースが表示されます。 それ以外の場合は、問題を説明する [ ソースが読み込まれていません] ページが表示され、問題を解決できるアクションへのリンクが表示されます。

ソース ファイルの検索パスをソリューションに追加するには:

デバッガーがソース ファイルを検索する場所を指定したり、特定のファイルを検索から除外したりできます。

  1. ソリューション エクスプローラーでソリューションを選択し、[プロパティ] アイコンを選択するか、Alt キー+Enter キーを押すか、右クリックして [プロパティ] を選択します。

  2. [ ソース ファイルのデバッグ] を選択します。

    [デバッグ ソース ファイル] ページ

  3. [ ソース コードを含むディレクトリ] で、検索するソース コードの場所を入力または選択します。 [新しい行] アイコンを使用して場所を追加するか、上下の矢印アイコンを使用して並べ替えるか、X アイコンを使用して削除します。

    デバッガーは、指定されたディレクトリのみを検索します。 検索するサブディレクトリのエントリを追加する必要があります。

  4. [ これらのソース ファイルを検索しない] で、検索から除外するソース ファイルの名前を入力します。

  5. [ OK] または [ 適用] を選択します。