カスタム デバッグ エンジンをデバッグする
プロジェクトの種類では、DebugLaunch メソッドからデバッグ エンジン (DE) を起動します。 つまり、DE は、そのプロジェクトの種類を制御している Visual Studio のインスタンスの制御下で起動されます。 ただし、Visual Studio のそのインスタンスでは DE をデバッグできません。 以下に示すのは、カスタム DE をデバッグできるようにするための手順です。
Note
: 「カスタム デバッグ エンジンをデバッグする」の手順では、DE にアタッチするには、それが起動するまで待つ必要があります。 DE が起動したときに表示される DE の開始近くにメッセージ ボックスを配置した場合は、その時点でアタッチしてから、メッセージ ボックスをクリアして続行できます。 それにより、すべての DE イベントをキャッチできます。
警告
次の手順を試みる前に、リモート デバッグがインストールされている必要があります。 詳細については、「リモート デバッグ」を参照してください。
カスタム デバッグ エンジンをデバッグする
リモート デバッグ モニター msvsmon.exe を起動します。
msvsmon.exe の [ツール] メニューから、[オプション] を選択して [オプション] ダイアログ ボックスを開きます。
[認証なし] オプションを選択し、[OK] をクリックします。
Visual Studio のインスタンスを起動し、カスタム DE プロジェクトを開きます。
Visual Studio の 2 番目のインスタンスを起動し、DE を起動するカスタム プロジェクトを開きます (開発の場合、これは通常、VSIP がインストールされるときに設定される実験用レジストリ ハイブにあります)。
この Visual Studio の 2 番目のインスタンスで、カスタム プロジェクトからソース ファイルを読み込み、デバッグされるプログラムを起動します。 しばらく待ってから DE が読み込まれるようにするか、またはブレークポイントにヒットするまで待ちます。
Visual Studio の最初のインスタンス (DE プロジェクト) で、[デバッグ] メニューから [プロセスにアタッチ] を選択します。
[プロセスにアタッチ] ダイアログ ボックスで、[トランスポート] を [リモート (認証なしでのみネイティブ)] に変更します。
[修飾子] をコンピューターの名前に変更します (注: 入力の履歴が存在するため、この名前は 1 回しか入力する必要がありません)。
[選択可能なプロセス] 一覧で、実行されている DE のインスタンスを選択し、[アタッチ] ボタンをクリックします。
シンボルが DE に読み込まれたら、DE コードにブレークポイントを設定します。
デバッグ プロセスを停止して再起動するたびに、手順 6. ~ 10. を繰り返します。
カスタム プロジェクトの種類をデバッグする
通常のレジストリ ハイブで Visual Studio を起動し、プロジェクトの種類のプロジェクトを読み込みます (これは、プロジェクトの種類のインスタンス化ではなく、プロジェクトの種類へのソースです)。
プロジェクトのプロパティを開き、[デバッグ] ページに移動します。 [コマンド] に、Visual Studio IDE のパスを入力します (これは、既定では [ドライブ]\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv.exe です)。
[コマンド引数] に、(VSIP がインストールされるときに作成された) 実験用レジストリ ハイブの「
/rootsuffix exp
」と入力します。[ OK ] をクリックして変更内容を確定します。
F5 キーを押して、プロジェクトの種類を起動します。 これにより、Visual Studio の 2 つ目のインスタンスが起動されます。
この時点で、プロジェクトの種類のソース コードにブレークポイントを設定できます。
Visual Studio の 2 番目のインスタンスで、プロジェクトの種類の新しいインスタンスを読み込むか、または作成します。 この読み込みまたは作成中に、ブレークポイントにヒットする可能性があります。
プロジェクトの種類をデバッグします。
DE を起動するプロセスをデバッグすることを選択した場合は、「カスタム デバッグ エンジンをデバッグする」の手順を実行して、DE が起動されてから DE にアタッチできます。 これにより、Visual Studio の 3 つのインスタンスが実行されます。つまり、1 つはプロジェクトの種類のソース用、2 番目はインスタンス化されたプロジェクトの種類用、3 番目は DE にアタッチされたものです。