如何记录StackOverflowException的堆栈跟踪?
我已经阅读了关于处理StackOverflowException类似问题的答案,并且我知道从.net 2.0开始,StackOverflowException会终止该过程,并且我很好。
但是,当堆栈溢出发生时,我想知道它为什么发生,特别是我想记录堆栈跟踪。
在Microsoft文档中,声明如果为该方法设置了适当的属性,则可以处理stackoverflow异常:
从.NET Framework 4开始,除非事件处理程序对安全至关重要且具有HandleProcessCorruptedStateExceptionsAttribute特性,否则不会引发此事件,以处理损坏进程状态的异常,例如堆栈溢出或访问冲突。
  所以我试着将HandleProcessCorruptedStateExceptionsAttribute设置为我的处理程序方法: 
class Program
{
    static void Main(string[] args)
    {
        AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
        Main(null);
    }
    [SecurityCritical]
    [HandleProcessCorruptedStateExceptionsAttribute]
    private static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e)
    {
        Console.WriteLine(e.ExceptionObject);
    }
}
该程序仍然没有给我堆栈跟踪而终止。
如何为StackOverflowException记录堆栈跟踪?
链接地址: http://www.djcxy.com/p/80763.html上一篇: How do I record stacktrace of StackOverflowException?
下一篇: C# cannot catch StackOverflowException or see where it happened
