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

21

请告诉我是否之前已经有人问过这个问题,我无法找到任何关于这个主题的问题:-

我需要确定在安装了.NET框架但没有安装Visual Studio(也不可能在计算机上安装Visual Studio)的计算机上抛出异常时的内部异常。 我如何检查这个内部异常?

请注意以下几点:

  • 从另一台计算机运行Visual Studio是不可行的,因为问题实际上在本地计算机上; 这是一种极为难以重现的故障。
  • 我知道WinDbg是一个选项,但是我需要快速解决这个问题,而且不幸的是我想象中学习WinDbg并足够熟练地完成这个任务所需的时间将超过我所拥有的时间。 但是,如果有人有详细的步骤说明,我会感兴趣的。
  • 我具有完全的管理员权限,并且可以安装任何不太大的东西(安装VS的问题是硬盘空间不足)。

谢谢!

3个回答

14

你看过MDBG了吗?可能需要一些时间来适应,但它非常直观易懂。

此外,DbgClr也是一个选择,我认为它仍然应该在SDK中的某个地方。


9

如果您有一个崩溃转储,使用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>

如果您还没有内存转储文件,可以使用附带WinDbg的adplus创建一个。
>adplus -crash -o<dump location> -quiet -pn<name of process>

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

我真的很想学习windbg,所以我肯定会在某个时候开始学习;然而现在mdbg已经可以胜任了。 - ljs
没问题。WinDbg 需要一些时间来适应,但一旦你克服了这个问题,它对于某些类型的问题确实非常强大。 - Brian Rasmussen

2

结果发现异常已被捕获,所以我需要捕获第一次机会异常,但我无法使用远程调试使其正常工作。 - ljs

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接