2012-02-08 70 views
0

我試圖調試服務啓動時發生的問題。嘗試在事件運行時進行附加失敗,windbg超時並出現鏈接鎖定錯誤。我認爲這個錯誤發生在我有機會附加之前。睡眠可能會讓我重視,但有沒有更優雅的解決方案?調試C Windows服務中的啓動問題

我想在服務啓動時首先啓動調試器。 C#有一個Debugger.Launch()方法在運行時啓動調試器。是否有一個等效的C調用可以在沒有.net的情況下使用?我可以在開始例程中下降。

我不能調用DebugBreak,因爲在服務啓動時我不在調試器下。

回答

0

Sleep肯定是一種可行的方法。這是粗糙而有效的。少一點原油就是使用良好的日誌記錄框架來輸出診斷信息。有了足夠的日誌框架,這可以非常有效。

+0

事實證明,取決於你在哪裏睡覺不太好。如果服務不能很快返回,那麼管理者會殺死它。仍在努力尋求一個好的解決方案。 MSDN有關於調試需要使用兩種服務的服務的說明http://msdn.microsoft.com/en-us/library/7a50syb3%28v=vs.80%29.aspx。也許我必須去那裏,我希望不要。 – 2012-02-08 22:42:07

+0

進行一些登錄。簡單而有效。 – 2012-02-08 22:57:10