zoukankan      html  css  js  c++  java
  • 堆栈溢出StackOverflow异常导致应用程序挂掉

    现象

      部署到服务器上的应用程序挂掉,并且无法在使用try{}Catch{}、AppDomain.CurrentDomain.UnhandledException事件处理器与Application.ThreadException事件处理器记录的日志文件中看到异常信息,在Windows 事件记录器中也未得到详细的异常堆栈信息

    解释

      从.net4.0开始若发生会导致进程崩溃的异常(如stack overflows 、access violations),不会将其捕获而是直接结束进程运行,除非是在以下场景
        CLR在一个托管的环境(Visual Studio)中运行,该环境允许这些异常被捕获
        这些异常是被主动创建并抛出的,而不是执行业务代码时发生的

    解决

    使用Debug Diagnostic Tools捕捉mini dump。
      使用VS进行远程调试,找出异常出现的位置。确保远程的应用程序与VS加载的工程的代码文件与pdf调试符号文件是一致的,否则无法在期望的断点处断下。

    参考

      http://stackoverflow.com/questions/1599219/c-sharp-catch-a-stack-overflow-exception
      http://msdn.microsoft.com/en-us/library/system.stackoverflowexception.aspx
      http://stackoverflow.com/questions/2591406/how-to-print-stack-trace-of-stackoverflowexception
      http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx
      http://blogs.msdn.com/b/tess/archive/2009/06/16/first-look-at-debugging-net-4-0-dumps-in-visual-studio-2010.aspx

  • 相关阅读:
    iOS开发-文件管理(一)
    浅析栈区和堆区内存分配的区别
    浅谈Block传值-匿名函数(代码块)
    cell的各种使用和赋值 总结
    类方法和对象方法的区别
    属性传值 ,代理传值,单例
    类目,延展,协议
    任意点 并查集
    Codeforces 145E. Lucky Queries 线段树
    Codeforces 103B. Cthulhu 并查集运用
  • 原文地址:https://www.cnblogs.com/beta2013/p/3377274.html
Copyright © 2011-2022 走看看