【问题标题】:How can I debug a Windows service that crashes?如何调试崩溃的 Windows 服务?
【发布时间】:2010-05-08 14:36:18
【问题描述】:

我有一个 .NET Windows 服务似乎由于 C00000005 崩溃(访问冲突 - 根据 Watson 博士的说法)。当我将 VS 调试器附加到它时(无论我使用符号还是不使用符号构建它),VS 调试器都会在服务崩溃时停止,而不是停止让我有机会进行任何调查。

  1. 这是意料之中的,还是我做错了什么?
  2. 使用 WinDbg 是否可以让我实时执行更多操作(显然,WinDbg 可以让我进行故障转储分析)?

谢谢!

【问题讨论】:

    标签: debugging windows-services crash


    【解决方案1】:

    您应该转到异常窗口(调试 -> 异常)并在 Win32 异常中选中该异常的抛出复选框。此外,请注意您正在调试本机代码(请参阅附加到进程窗口中的附加到组合框。

    【讨论】:

    • @Christopher:我的回答对你有帮助吗?
    • 对不起,没有。这个问题原来是一个 COM DLL 在加入它产生的所有线程之前卸载自己。当其中一个休眠线程醒来时,它试图执行不再在内存中的代码,这最终导致递归异常处理程序调用溢出堆栈。底线:除非您知道自己在做什么,否则不要在 COM DLL 中使用 OmniORB。
    猜你喜欢
    • 1970-01-01
    • 2018-01-18
    • 2017-06-03
    • 2010-10-06
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多