您可以使用下列任一方法來偵錯您的服務。
使用調試程式在服務執行時進行偵錯。 首先,取得服務進程的進程標識碼(PID)。 取得 PID 之後,請附加至執行中的進程。 如需語法資訊,請參閱調試程序隨附的檔。
呼叫 DebugBreak 函式,以叫用調試程式進行 Just-In-Time 偵錯。
指定啟動程式時要使用的調試程式。 若要這樣做,請在下列登錄位置 建立名為 Image File Execution Options 的機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion
建立與您的服務同名的子機碼(例如,MYSERV.EXE)。 在這個子機碼中,新增類型為 REG_SZ的數值,名為 Debugger。 使用調試程式的完整路徑作為字串值。 在 [服務] 控制面板小程式中,選取您的服務,按兩下 [啟動,然後核取 [[允許服務與桌面互動]。 服務必須是互動式服務,否則調試程式無法在預設桌面上執行。 請注意,從 Windows Vista 起,不再支援這項技術,因為所有服務都是在專用於服務且不支援顯示使用者介面的會話中執行。
使用 事件追蹤 來記錄資訊。
若要偵錯自動啟動服務的初始化程式代碼,您必須暫時安裝並執行服務作為需求啟動服務。
有時可能需要以主控台應用程式的形式執行服務,以進行偵錯。 在此案例中,StartServiceCtrlDispatcher 函式會傳回 ERROR_FAILED_SERVICE_CONTROLLER_CONNECT。 因此,請務必將您的程式碼結構化,以確保當此錯誤傳回時,不會呼叫特定服務的代碼。
相關主題
-
適用於 Windows 的 偵錯工具