如何查看.NET应用程序的堆栈跟踪

时间:2009-10-28 21:10:32

标签: c# .net visual-studio debugging stack-trace

我在制作中有一个.NET Windows应用程序无法访问Visual Studio(标准版),他们唯一可以安装的是Express版本,它没有Just -In-Time Debugging选项(崩溃时具有调试按钮的选项)。所以我只是想知道是否有一个Windows应用程序调试工具或其他我可以运行或附加的东西来查看stacktraces。我还在我的应用程序中启用了PDB,但它没有提供任何更多信息,因此我可以跟踪我的崩溃(由未处理的异常引起)。

6 个答案:

答案 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调试器(虽然源文件是只读的),所以你可以尝试一下。