调试C Windows服务中的启动问题
问题描述:
我试图调试服务启动时发生的问题。尝试在事件运行时进行附加失败,windbg超时并出现链接锁定错误。我认为这个错误发生在我有机会附加之前。睡眠可能会让我重视,但有没有更优雅的解决方案?调试C Windows服务中的启动问题
我想在服务启动时首先启动调试器。 C#有一个Debugger.Launch()方法在运行时启动调试器。是否有一个等效的C调用可以在没有.net的情况下使用?我可以在开始例程中下降。
我不能调用DebugBreak,因为在服务启动时我不在调试器下。
答
Sleep
肯定是一种可行的方法。这是粗糙而有效的。少一点原油就是使用良好的日志记录框架来输出诊断信息。有了足够的日志框架,这可以非常有效。
事实证明,取决于你在哪里睡觉不太好。如果服务不能很快返回,那么管理者会杀死它。仍在努力寻求一个好的解决方案。 MSDN有关于调试需要使用两种服务的服务的说明http://msdn.microsoft.com/en-us/library/7a50syb3%28v=vs.80%29.aspx。也许我必须去那里,我希望不要。 – 2012-02-08 22:42:07
进行一些登录。简单而有效。 – 2012-02-08 22:57:10