如何在没有 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?