如何在没有 Visual Studio 的情况下调试 .net 应用程序

Posted

技术标签:

【中文标题】如何在没有 Visual Studio 的情况下调试 .net 应用程序【英文标题】:How to Debug .net applications without Visual Studio 【发布时间】:2010-10-23 14:19:42 【问题描述】:

如果之前有人问过这个问题,请告诉我,我找不到关于这个主题的任何问题:-

我需要确定在安装了 .net 框架但未安装 Visual Studio 的计算机上引发的异常的内部异常(也无法在计算机上安装 Visual Studio)。如何检查这个内部异常?

注意几点:

从另一台计算机上运行 Visual Studio 并不好,因为问题实际上出在盒子上;这是一等海森虫。 我知道 WinDbg 是一种选择,但是我需要快速完成这项工作,不幸的是,我想充分学习 WinDbg 以完成这项工作所花费的时间将超过我所拥有的时间 - 但是,如果有人对此有分步说明我会感兴趣的。 我有完整的管理员权限,可以安装任何不太大的东西(安装VS的问题是硬盘空间不足)。

谢谢!

【问题讨论】:

【参考方案1】:

如果您有故障转储,使用 WinDbg 执行此操作实际上相当简单。将转储加载到 WinDbg 中,加载 sos,然后运行 ​​printexception 命令。

>.load sos
>!printexception

这将告诉您异常并指出内部异常。输出将类似于:

0:000> !printexception
Exception object: 0135b340
Exception type: System.ApplicationException
Message: GetAverage failed
InnerException: System.IndexOutOfRangeException, use !PrintException 01358394 to see more
<stack trace follows>

如果您还没有内存转储,您可以使用 adplus(WinDbg 附带)创建一个。

>adplus -crash -o<dump location> -quiet -pn<name of process>

如果您更喜欢使用 PID,请改用 -p 选项。

【讨论】:

我真的很想学习windbg,所以我相信我会在某个时候开始学习;但是目前 mdbg 做得很好。 没问题。 WinDbg 需要一些时间来适应,但一旦你习惯了它,它对于某些类型的问题确实非常强大。【参考方案2】:

你有look at MDBG吗?您可能需要一段时间才能四处走动,但相当直截了当。

另外DbgClr 可能是一个选项,我认为它仍然应该在 SDK 的某个地方。

【讨论】:

【参考方案3】:

可以使用远程调试:http://msdn.microsoft.com/en-us/library/y7f5zaaa.aspx

【讨论】:

发现异常被捕获,所以我需要捕获第一次机会异常,但我无法使用远程调试进行工作。

以上是关于如何在没有 Visual Studio 的情况下调试 .net 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何让 Visual Studio 调试器在没有焦点的情况下中断

如何在没有 Visual Studio 的情况下调试 .net 应用程序

Wcf 测试客户端如何在没有 Visual Studio 的情况下使用?

如何在没有 CMake 的情况下使用 Visual Studio 2013 设置 Dlib?

如何在没有官方支持的情况下使用 Visual Studio 2015 构建 Qt 4.8.6?

如何在没有 Visual Studio 的情况下发布 ASP.NET Web API?