我在制作中有一个.NET Windows应用程序无法访问Visual Studio(标准版),他们唯一可以安装的是Express版本,它没有Just -In-Time Debugging选项(崩溃时具有调试按钮的选项)。所以我只是想知道是否有一个Windows应用程序调试工具或其他我可以运行或附加的东西来查看stacktraces。我还在我的应用程序中启用了PDB,但它没有提供任何更多信息,因此我可以跟踪我的崩溃(由未处理的异常引起)。
答案 0 :(得分:6)
如果要捕获异常,则Exception对象包含堆栈跟踪:Exception.StackTrace。此外,您可以使用Environment.StackTrace访问它。
在下面的代码中,还有一个未处理异常的事件处理程序,它将异常(包括堆栈跟踪)写入事件日志。
// Sample for the Environment.StackTrace property
using System;
class Sample
{
public static void Main()
{
AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(UnhandledExceptions);
Console.WriteLine("StackTrace: '{0}'", Environment.StackTrace);
throw new Exception("Fatal Error");
}
static void UnhandledExceptions(object sender, UnhandledExceptionEventArgs e)
{
string source = "SOTest";
if (!System.Diagnostics.EventLog.SourceExists(source))
{
System.Diagnostics.EventLog.CreateEventSource(source, "Application");
}
System.Diagnostics.EventLog log = new System.Diagnostics.EventLog();
log.Source = source;
log.WriteEntry(e.ExceptionObject.ToString(),
System.Diagnostics.EventLogEntryType.Error);
}
答案 1 :(得分:3)
您也可以使用windbg和sos.dll
答案 2 :(得分:1)
您可以尝试CLR Profiler
答案 3 :(得分:1)
.NET应用程序异常的堆栈跟踪记录在“应用程序”下的“事件查看器”中。
此链接抛出404:
alt text http://eduncan911.com/blog/thumbnail/exception-in-iis-stackoverflow-logs.png
答案 4 :(得分:0)
也许EQATEC Tracer可以帮助你。
答案 5 :(得分:0)
使用:
.NET Framework 2.0 SDK附带Microsoft CLR Debugger。它的工作方式类似于Visual Studio调试器(虽然源文件是只读的),所以你可以尝试一下。