CGI アプリケーションのデバッグ

Just-In-Time デバッガーと CBL_DEBUGBREAK の埋め込み呼び出しを使用するか、プロジェクトのプロパティの [Wait for debuggable attachment] または [Launch URL] デバッグ オプションを使用して、CGI アプリケーションをデバッグできます。サービスとして実行されるように Web サーバーが構成されている場合は、デバッガーが CGI プロセスにアタッチすることを許可するために、管理者権限が必要になります。

ヒント: デバッガーでプログラムのシンボルを見つけることができない場合は、CGI シンボルのパスをシンボル パスに追加できます。これは、Visual Studio の [オプション] の [デバッグ > シンボル] ページから行います。たとえば、c:\apache2.2\cgi-bin というパスを使用します。

[Launch URL] 開始オプションを使用してネイティブ CGI プロジェクトをデバッグできます。

[Wait for debuggable attachment] を使用したデバッグ

  1. Web サーバーを起動します。
  2. CGI バイナリが Web サーバー上のフォルダーにあり、そのフォルダー内での CGI の実行が有効になっていることを確認します。
  3. IDE を起動します。
    注:
    • CGI がサービスとして実行されている場合は、管理者権限で Visual Studio を起動する必要があります。
    • httpd 実行可能ファイルを使用して、コマンド ラインから Apache Web サーバーを実行できます。この実行可能ファイルでは独自のユーザー ID を使用するため、管理者権限で IDE を起動する必要はありません。
  4. IDE で、[プロジェクト > myproject のプロパティ] をクリックし、[デバッグ] タブを選択します。
  5. 次のいずれかのデバッグ オプションを選択します。
    1. [Start browser with URL] をクリックし、アプリケーションの URL を指定します (例:http://localhost:80/cgiform1.htm)。

      このオプションで正しい CGI を待機するようにするには、プロジェクトの出力フォルダー、または [デバッグ] タブの [Working directory] 設定で指定されているパスが、Web サーバーの CGI フォルダーと一致している必要があります。

    または

    1. [Wait for debuggable attachment] をクリックし、[Wait for directory] を指定します。
    2. [Working directory] フィールドで CGI フォルダーのパスを指定します。

    さらに

    1. CGI アプリケーションを複数回デバッグする場合は、[Return to waiting state when debugging] をオンにします。
  6. [Debug > Start Debugging] をクリックします。

    デバッガーは CGI アプリケーションが実行されるまで待機してから、そのアプリケーションにアタッチします。

CBL_DEBUGBREAK および Just-In-Time デバッガーを使用したデバッグ

CBL_DEBUGBREAK の呼び出しをコードに埋め込み、その呼び出しを使用して CGI をデバッグすることもできます。CGI が実行されて呼び出しに到達すると、管理者権限による CGI のデバッグを許可するよう求める Just-In-Time デバッグの通知が表示されます。

または、上記のように IDE を起動し、呼び出しに到達したら自動的に CGI のデバッグを開始するように構成することもできます。プロジェクトのプロパティの [デバッグ] タブで、次のようにオプションを指定する必要があります。[Wait for debuggable attachment] を選択し、[Wait for any program] を指定します。

注: IIS 7.5 で実行される CGI をデバッグする場合は、[Wait for debuggable attachment] オプションのいずれかを使用する必要があります。デフォルトでは、このアプリケーションは、「ApplicationPoolIdentity」を使用して、Just-In-Time デバッグのプロンプトを表示しないようにする CGI を実行します。