熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

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

2013-11-12 23:34:39  來源: Delphi編程 
有兩種途徑可用於調試服務程序第一種是在單獨的類中定義服務的工作部分並在一個單獨的程序中對其進行調試第二種是在服務運行時進行調試第一種途徑是個好主意把負責服務工作的類添加到通常的程序是測試服務行為的最容易的方法而且保持了與工作台測試的思想的一致性
  
  我們使用第一種方法在創建ServiceApp 和TestMailer(本書光盤上也有)這兩個程序時進行測試把同樣的組件TIdMessageTTimer 和TIdSTMP 添加到一個單獨的程序然後創建一個郵件發送器當找到TestMailer 程序的缺陷後所有的修改都更新到服務程序創建工作台或測試程序是很容易的但並不總是夠用
  
  第二種測試服務程序的途徑是安裝並運行服務程序然後將其附加到Delphi 中的運行進程按照下列步驟即可在運行服務時調試ServiceAppexe 程序
  
   在命令行運行Serviceappexe /INSTALL安裝服務程序
  
   選擇Start | Settings | Control Panel | Administrative Tools | Services將運行Services 小應用程序找到MyService然後單擊Start Service 工具欄按鈕(這些步驟適用於Windows 在Windows NT 中的步驟幾乎相同)
  
   運行Delphi
  
   裝載ServiceAppdpr 工程
  
   在Delphi 中選擇Run | Attach to Process 菜單項
  
   在Attach to Process 對話框(如下圖所示)中選中Show System Processes 復選框
  [[The No Picture]]
   找到ServiceAppexe然後單擊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
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.