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