2015-07-13 30 views
0

我目前正在創建一個服務,我需要調試它們。我也使用「附加到進程」的形式。自動「附加到進程」的服務調試

(作爲第一款http://docwiki.embarcadero.com/RADStudio/XE8/en/Debugging_Service_Applications描述),但它可以自動調試程序與服務關聯起來後建造它們?

我已經使用預生成事件重新啓動我的服務。

+1

如果您正確構建了您的服務,它應該在服務啓動時啓動一個線程。製作一個簡單的控制檯應用程序,它執行相同的操作(即啓動線程)並調試控制檯應用程序... – whosrdaddy

回答

3

停止,但它可能自動將調試器與構建它們後的服務相關聯?

不,它不是。調試器無法直接啓動服務可執行文件,只有SCM可以執行此操作。儘管SCM可以通過編程來啓動可編程服務,例如從命令行批處理文件啓動,但調試器不能以可編程方式附加到正在運行的進程,只能手動執行。

0

您可以構建一個與服務相同的普通應用程序來調試您的代碼。只需將所有需要的單位添加到第二個項目。我們用這種方式來調試我們的服務(另外這個應用程序包含一個日誌文件查看器,我們可以看我們的服務生產生活日誌)

Antother方法IST如下:

  • 創建「markerfile」的地方(只是一個簡單的文本文件)
  • 服務內部有一個循環,退出時的標記文件不存在
  • 設置斷點只是等待循環後
  • 啓動服務(它循環等待:l,markerfile到b Ë刪除
  • 調試器附加到服務過程
  • 刪除「markerfile」
  • 服務退出等待循環,並在您的斷點
  • 調試
相關問題