在服务器上安装WinDBG

时间:2012-07-12 15:41:24

标签: asp.net vb.net debugging windbg

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

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

据我所知,ADPlus是CDB和WinDBG的包装器。我的问题是:在生产服务器上安装WinDBG是否有些过分?我对Visual Studio外部的调试比较陌生。我正在调试一个使用VB.NET(客户端应用程序)和ASP.NET的系统。存在内存泄漏

3 个答案:

答案 0 :(得分:1)

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

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

CDB,WinDbg和NTSD都是Debugging Tools for Windows软件包附带的调试器。 CDB和NTSD是命令行工具,而WinDbg提供了一个图形用户界面(不是一个非常奇特的用户界面,但这不是重点)。他们在下面使用相同的调试引擎。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

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

除此之外,如果您只是分析崩溃转储或内存转储,那么安装WinDbg没有任何优势,因此出于这个原因会有点过分。

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

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