COM サーバーおよび COM コンテナーのデバッグ
COM アプリケーションは、プログラマが直接コントロールできないところで多くのタスクを実行します。DLL 間の通信、オブジェクトの使用数のカウント、クリップボード処理などは、予期せぬ動作に遭遇する領域のほんの一例です。このような事態が発生した場合は、まず問題の原因を追及します。
Visual Studio のデバッガーは、コンテナーやサーバー間のステップやステップ インをサポートしています。この機能には、リモート プロシージャ コール (RPC) 間のステップも含まれます。
このトピックの内容
COM サーバーおよびコンテナーを同じソリューションでのデバッグ
同じソリューションで 2 つのプロジェクトを使用して、COM サーバーおよび COM コンテナーをデバッグできます。それぞれのプロジェクトに適切なブレークポイントを設定してデバッグを行います。ブレークポイントが設定されているサーバーをコンテナーが呼び出すと、サーバーのコードに戻るまで、つまりデバッグが終了するまで、コンテナーは待機しています。プロセスの境界をまたぐ呼び出しもトレースできます。詳細については、「TRACE マクロ」を参照してください。
COM コンテナーのデバッグは、標準的なプログラムのデバッグによく似ています。違いがあるのは、コンテナー アプリケーションにデータをドラッグするなど、コールバックを生成するイベントをデバッグする場合です。この場合は、ブレークポイントをコールバック関数の中に設定する必要があります。
コンテナー情報のないサーバー アプリケーションをデバッグします。
いない、または、コンテナー アプリケーションにデバッグ情報を使用したくない場合は、サーバー アプリケーションのデバッグを開始、3 段階のプロセスです。
サーバーのデバッグを通常のアプリケーションと同様に開始します。
必要な場所にブレークポイントを設定します。
コンテナー アプリケーションを起動します。
サーバーおよびドメインの分離 (SDI) アプリケーションのデバッグ
SDI サーバー アプリケーションをデバッグする場合は、C/C++、C#、または Visual Basic のプロジェクトの [Project プロパティ ページ] ダイアログ ボックスで、[コマンド ライン引数] プロパティに /Embedding または /Automation を指定する必要があります。
デバッガーはこれらのコマンド ライン引数を利用して、コンテナーから起動されたようにサーバー アプリケーションを起動できます。次に、プログラム マネージャーまたはファイル マネージャーからコンテナーを起動すると、コンテナーはデバッガー中で起動されたサーバーのインスタンスを使用できます。
[Project プロパティ ページ] ダイアログ ボックスを表示するには、ソリューション エクスプローラーでプロジェクトを右クリックし、ショートカット メニューの [プロパティ] をクリックします。[コマンド ライン引数] プロパティを表示するには、[構成プロパティ] カテゴリを展開し、[デバッグ] ページをクリックします。