【问题标题】:Debugging startup issues in a C Windows Service调试 C Windows 服务中的启动问题
【发布时间】:2012-02-09 05:25:43
【问题描述】:

我正在尝试调试服务启动时发生的问题。在运行时尝试附加失败,windbg 超时并出现有关链接锁定的错误。我认为错误发生在我有机会附加之前。睡眠可能会让我附上,但有更优雅的解决方案吗?

我想在服务启动时首先启动调试器。 C# 有一个Debugger.Launch() 方法可以在运行时启动调试器。有没有可以在没有.net 的情况下使用的等效 C 调用?我可以在开始例程中加入一些东西。

我无法调用 DebugBreak,因为在服务启动时我不在调试器下。

【问题讨论】:

    标签: c debugging windows-services


    【解决方案1】:

    Sleep 当然是一种可行的方法。它粗糙但有效。稍微不那么粗暴的是使用一个好的日志框架来输出诊断。借助功能足够强大的日志记录框架,这会非常有效。

    【讨论】:

    • 事实证明,取决于你在哪里睡觉并不能很好地工作。如果服务没有快速返回,经理将杀死它。仍在努力寻找一个好的解决方案。 MSDN 有一个注释msdn.microsoft.com/en-us/library/7a50syb3%28v=vs.80%29.aspx 关于调试服务需要使用两个服务。也许我必须去那里,我希望不要去。
    • 输入一些登录信息。简单有效。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多