【问题标题】:Can I use windbg as a post mortem debugger for Windows services?我可以将 windbg 用作 Windows 服务的事后调试器吗?
【发布时间】:2012-12-10 09:33:38
【问题描述】:

我将 Windbg 设置为默认的事后调试器。我通过运行windbg -I 做到了这一点。但是,这似乎只能从我登录的用户运行的应用程序中捕获未处理的异常,而不是 Windows 服务。有谁知道我如何配置 windbg 来捕捉这些?

【问题讨论】:

    标签: windows windows-services windbg postmortem-debugging


    【解决方案1】:

    如果您计划从服务应用程序的执行开始就对其进行调试,包括其初始化代码,则需要此准备步骤。 http://msdn.microsoft.com/en-us/library/windows/hardware/ff553427(v=vs.85).aspx

    【讨论】:

      【解决方案2】:

      当 WinDbg 作为事后调试器运行时,它由崩溃的进程启动。如果是服务,它由会话 0 中运行的进程启动,并且无法访问桌面。

      您可以配置 AeDebug 注册表以启动创建故障转储的进程并调试故障转储。您可以使用 ntsd -server 并连接到服务器。

      【讨论】:

      • 一个用于创建转储的好工具是 procdump,由 sysinternals.com 提供
      【解决方案3】:

      您应该能够使用 WinDbg 附加或启动任何服务,即使那些不是由用户运行的服务:http://support.microsoft.com/kb/824344

      【讨论】:

      • 谢谢 Ed,是的,这就是我目前正在做的事情。但是,如果能够以与非服务进程相同的方式使用自动未捕获异常处理,那就太好了。 (即无需一直附加)
      猜你喜欢
      • 2014-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 2021-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多