如何為執行在 IIS 下的 CGI 應用程式除錯(Debug)

本文曾發行於 CHT238788
結論
本文說明如何為執行在IIS下的CGI應用程式除錯。
其他相關資訊
若要為 VC CGI 應用程式除錯,請執行下列步驟:

  1. 請先包含windows.h並建立CGI除錯版本再加入下述程式碼::
    #define _WIN32_WINNT 0x0400


    在CGI的開始加入下述程式碼:
        #ifdef _DEBUG    char szMessage [256];    wsprintf (szMessage, "Please attach a debbuger to the process 0x%X (%s) and click OK",              GetCurrentProcessId(), argv[0]);    MessageBox(NULL, szMessage, "CGI Debug Time!",               MB_OK|MB_SERVICE_NOTIFICATION);    #endif


    啟動CGI應用程式

    當螢幕上出現訊息方塊,附加除錯工具在CGI處理程序(例如Visual C)。

    當除錯工具被附加,開啟來源檔案和設立中斷點。點選"確認",取消此訊息方塊。當此訊息方塊取消,CGI將繼續執行,在中斷點停止。
  2. 在CGI的開始加入下述程式碼:
        #ifdef _DEBUG    char szMessage [256];    wsprintf (szMessage, "Please attach a debbuger to the process 0x%X (%s) and click OK",              GetCurrentProcessId(), argv[0]);    MessageBox(NULL, szMessage, "CGI Debug Time!",               MB_OK|MB_SERVICE_NOTIFICATION);    #endif


    啟動CGI應用程式

    當螢幕上出現訊息方塊,附加除錯工具在CGI處理程序(例如Visual C)。

    當除錯工具被附加,開啟來源檔案和設立中斷點。點選"確認",取消此訊息方塊。當此訊息方塊取消,CGI將繼續執行,在中斷點停止。
  3. 啟動CGI應用程式

    當螢幕上出現訊息方塊,附加除錯工具在CGI處理程序(例如Visual C)。

    當除錯工具被附加,開啟來源檔案和設立中斷點。點選"確認",取消此訊息方塊。當此訊息方塊取消,CGI將繼續執行,在中斷點停止。
  4. 當螢幕上出現訊息方塊,附加除錯工具在CGI處理程序(例如Visual C)。

    當除錯工具被附加,開啟來源檔案和設立中斷點。點選"確認",取消此訊息方塊。當此訊息方塊取消,CGI將繼續執行,在中斷點停止。
  5. 當除錯工具被附加,開啟來源檔案和設立中斷點。點選"確認",取消此訊息方塊。當此訊息方塊取消,CGI將繼續執行,在中斷點停止。
若要為 VB CGI 應用程式除錯,請執行下列步驟:

  1. 編譯VB.EXE符號除錯資訊(Symbolic Debug Info.),關掉最佳化。

    在CGI的專案中加入以下的函式原型(Function prototype)
    Public Declare Function Sleep Lib "kernel32" _(ByVal dwMilliseconds As Long) As Long


    在CGI的Sub Main( )的開始增加以下的程式碼:
    Sleep 60000


    點擊(Hit) CGI應用程式的瀏覽器。

    當CGI處於Sleeping,啟動Microsoft Developer Studio。在"建立" 的清單,點選"開始除錯", 點選"附加程序"Attach Process,選擇"顯示系統程序" 選項和附加CGI程序在除錯工具。當附加程序,被載入VB來源檔,和建立中斷點在Sleep的程序句後。

    當Sleep程序句的應用程式控制被釋放,除錯工具將停頓在中斷點。"Sleeping 60000"表示給你60秒完成以上的步驟。假如您需要更多的時間,請增加Sleep需要的數目。

  2. 在CGI的專案中加入以下的函式原型(Function prototype)
    Public Declare Function Sleep Lib "kernel32" _(ByVal dwMilliseconds As Long) As Long


    在CGI的Sub Main( )的開始增加以下的程式碼:
    Sleep 60000


    點擊(Hit) CGI應用程式的瀏覽器。

    當CGI處於Sleeping,啟動Microsoft Developer Studio。在"建立" 的清單,點選"開始除錯", 點選"附加程序"Attach Process,選擇"顯示系統程序" 選項和附加CGI程序在除錯工具。當附加程序,被載入VB來源檔,和建立中斷點在Sleep的程序句後。

    當Sleep程序句的應用程式控制被釋放,除錯工具將停頓在中斷點。"Sleeping 60000"表示給你60秒完成以上的步驟。假如您需要更多的時間,請增加Sleep需要的數目。

  3. 在CGI的Sub Main( )的開始增加以下的程式碼:
    Sleep 60000


    點擊(Hit) CGI應用程式的瀏覽器。

    當CGI處於Sleeping,啟動Microsoft Developer Studio。在"建立" 的清單,點選"開始除錯", 點選"附加程序"Attach Process,選擇"顯示系統程序" 選項和附加CGI程序在除錯工具。當附加程序,被載入VB來源檔,和建立中斷點在Sleep的程序句後。

    當Sleep程序句的應用程式控制被釋放,除錯工具將停頓在中斷點。"Sleeping 60000"表示給你60秒完成以上的步驟。假如您需要更多的時間,請增加Sleep需要的數目。

  4. 點擊(Hit) CGI應用程式的瀏覽器。

    當CGI處於Sleeping,啟動Microsoft Developer Studio。在"建立" 的清單,點選"開始除錯", 點選"附加程序"Attach Process,選擇"顯示系統程序" 選項和附加CGI程序在除錯工具。當附加程序,被載入VB來源檔,和建立中斷點在Sleep的程序句後。

    當Sleep程序句的應用程式控制被釋放,除錯工具將停頓在中斷點。"Sleeping 60000"表示給你60秒完成以上的步驟。假如您需要更多的時間,請增加Sleep需要的數目。

  5. 當CGI處於Sleeping,啟動Microsoft Developer Studio。在"建立" 的清單,點選"開始除錯", 點選"附加程序"Attach Process,選擇"顯示系統程序" 選項和附加CGI程序在除錯工具。當附加程序,被載入VB來源檔,和建立中斷點在Sleep的程序句後。

    當Sleep程序句的應用程式控制被釋放,除錯工具將停頓在中斷點。"Sleeping 60000"表示給你60秒完成以上的步驟。假如您需要更多的時間,請增加Sleep需要的數目。

欲取得詳細資訊,請參閱下面的 Microsoft 知識庫文件:
183480 HOWTO: Debug ISAPI and Filter DLL Under IIS 4.0

参考

本文件是根據 Microsoft Knowledgebase 文件編號 Q238788 翻譯的. 若要參考原始英文文件內容, 請至以下網址:

http://support.microsoft.com/support/kb/articles/Q238/7/88.asp
內容

文章識別碼:238788 - 最後檢閱時間:10/15/2003 19:00:00 - 修訂: 1.0

Microsoft Internet Information Server 2.0, Microsoft Internet Information Server 3.0, Microsoft Internet Information Server 4.0, Microsoft Internet Information Services 5.0

  • kbhowto kbgrpinetserver KB238788
意見反應