程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 用DELPHI進行NT、2000、2003服務程序的調試

用DELPHI進行NT、2000、2003服務程序的調試

編輯:Delphi
   有兩種途徑可用於調試服務程序。第一種是在單獨的類中定義服務的工作部分,並在一個單獨的程序中對其進行調試。第二種是在服務運行時進行調試。第一種途徑是個好主意;把負責服務工作的類添加到通常的程序是測試服務行為的最容易的方法,而且保持了與工作台測試的思想的一致性。
   我們使用第一種方法,在創建ServiceApp 和TestMailer(本書光盤上也有)這兩個程序時進行測試。把同樣的組件TIdMessage、TTimer 和TIdSTMP 添加到一個單獨的程序,然後創建一個郵件發送器。當找到TestMailer 程序的缺陷後,所有的修改都更新到服務程序。創建工作台或測試程序是很容易的,但並不總是夠用。
   第二種測試服務程序的途徑是:安裝並運行服務程序,然後將其附加到Delphi 中的運行進程。按照下列步驟,即可在運行服務時調試ServiceApp.exe 程序。
  1. 在命令行運行Serviceapp.exe /INSTALL,安裝服務程序。
  2. 選擇Start | Settings | Control Panel | Administrative Tools | Services,將運行Services 小應用程序。找到MyService,然後單擊Start Service 工具欄按鈕(這些步驟適用於Windows 2000;在Windows NT4.0 中的步驟幾乎相同)。
  3. 運行Delphi。
  4. 裝載ServiceApp.dpr 工程。
  5. 在Delphi 中選擇Run | Attach to Process 菜單項。
  6. 在Attach to Process 對話框(如下圖所示)中,選中Show System Processes 復選框。
   
  7. 找到ServiceApp.exe,然後單擊Attach 按鈕。
  8. 在Delphi 中,對工程源文件的OnExecute 事件方法設置斷點,然後按鍵F9。
  圖B.3 Attach to Process 對話框可用於將Delphi 調試器附加到已運行的進程上;這對於調試服務程序是很有用的
   Delphi 將把調試器附加到運行的服務程序上,並打開CPU 對話框。除非您閱讀匯編語言非常流暢,否則CPU 視圖用處不大。但當服務程序運行到斷點時,將停止在斷點上並切換到Delphi 代碼視圖。在用戶通過Delphi 獲取對已運行服務的控制之後,即可像其他程序一樣對服務進行步進和調試。
   注意:作為開發者,您應該對自己的PC 具有管理員權限。令人難以置信的是,有些組織信任開發者編寫的代碼但卻不允許他們管理自己的PC。現在的經濟形勢仍然很好,找一份新工作吧。
   Delphi 幫助文檔提到,如果權限不足,那麼附加到服務進程可能會失敗。當只要對PC 擁有管理員權限,附加到運行的服務進程總是工作正常。幫助主題“Debugging Services”包含了調試服務的第三種途徑,其中涉及到修改注冊表設置,您可以參考。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved