【问题标题】:WinDBG installation on server在服务器上安装 WinDBG
【发布时间】:2012-07-12 15:41:24
【问题描述】:

在生产服务器上安装 WinDBG 有什么好处吗?

我已经阅读了 AdPlus 和 WinDBG 之间的区别。另一位开发人员表示,他们在服务器上使用 AdPlus 创建转储文件,并在客户端 PC 上使用 WinDBG 对其进行分析。

我知道 ADPlus 是 CDB 的包装器,而 WinDBG 更多。我的问题是:在生产服务器上安装 WinDBG 是不是有点矫枉过正?我对在 Visual Studio 之外进行调试比较陌生。我正在调试一个使用 VB.NET(客户端应用程序)和 ASP.NET 的系统。有内存泄漏

【问题讨论】:

    标签: asp.net vb.net debugging windbg


    【解决方案1】:

    您无需安装 WinDbg/AdPlus。如果您需要它,您可以简单地将文件 xcopy 到服务器,甚至可以从共享/USB/其他任何地方运行应用程序。

    AdPlus 是一个脚本(它曾经是,现在它是一个托管应用程序)。我不会称它为 CDB 的包装器。它只是自动使用 CDB 执行各种任务,例如在某些条件下创建内存转储。它做得很好,但您可能还想看看ProcDump,因为它提供了一些额外的非常有用的选项。

    CDB、WinDbg 和 NTSD 都是包含在 Windows 调试工具包中的调试器。 CDB 和 NTSD 是命令行工具,而 WinDbg 提供图形用户界面(不是很花哨的用户界面,但这是题外话)。他们在下面使用相同的调试引擎。

    【讨论】:

    • 谢谢。我已经在服务器上安装了 WinDBG。我已按照此页面上的说明设置文件路径:设置 _NT_SYMBOL_PATH,但符号文件夹为空。是否有实际下载符号的命令?
    • 符号仅根据需要下载。如果您想在调试会话期间强制加载符号,您可以执行.reload /force。使用!sym noisy 解决符号加载问题。
    【解决方案2】:

    如果您安装了 ADPlus,您将能够在应用程序崩溃或挂起或其他问题(内存泄漏)的情况下生成转储文件。然后你需要分析这个转储文件。 WinDBG 将帮助您做到这一点。无需将其安装在生产服务器上。您可以将转储文件复制到开发机器并在那里进行分析。无论如何,WinDBG 不会是多余的。如果出现严重问题,您将能够尽快了解根本原因。 如果 WinDBG 没有运行,它本身不会对性能产生任何影响。 此外,您可以使用 WinDBG 附加到进程并在运行时对其进行调试。

    【讨论】:

      【解决方案3】:

      在服务器上安装 WinDbg 将允许您在现场调试实时系统,并且您可以通过在服务器上运行 WinDbg 调试服务来执行远程调试,如果您有一些重现错误的独特条件可能会更好这很难在您的开发环境中重现。

      除此之外,如果您只是分析故障转储或内存转储,那么安装 WinDbg 没有任何优势,因此出于这个原因,这将是矫枉过正。

      这里有一个链接告诉您何时使用 AdPlus:http://support.microsoft.com/kb/286350

      我个人的想法是,如果它满足你的需要,那么你就不需要 WinDbg,说如果你安装了 WinDbg,你可以启用 gflags,获取堆栈跟踪,处理跟踪,创建特定异常的转储,转储附加信息到内存转储不包含的日志等。所以基本上我只会在需要时安装 WinDbg,否则 Adplus 很好。

      【讨论】:

      • 我同意你的评论。 AdPlus 是否仅适用于生成内存转储?
      猜你喜欢
      • 1970-01-01
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-14
      • 2013-09-02
      相关资源
      最近更新 更多