1

在生产服务器上安装 WinDBG 是否有优势?

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

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

4

3 回答 3

1

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

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

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

于 2012-07-12T20:38:03.663 回答
0

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

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

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

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

于 2012-07-12T15:53:45.863 回答
0

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

于 2012-07-12T15:48:17.890 回答