关于Unity3D的编辑器崩溃时的线索定位

        今天在Unity3D编辑器中进行功能测试的时候,编辑器突然崩溃了(就是整个窗口突然消失,进程直接结束)之后也没有任何错误报告信息提示。好吧,应该是偶现问题,我侥幸地想,我用的好歹也是正版啊,不应该总出这种莫名其妙的问题吧难过

       再次进行同样的功能测试,编辑器又崩溃了,依然没有任何错误报告,这让我想进行调试都无从调起。想想有什么线索吧,突然想起编辑器在硬盘上也是有log输出的,在崩溃的时候,如果已经进行了错误log输出,那么就可以找到崩溃的线索。在磁盘上翻了下,最后在以下目录找到了log文件:

        C:\Documents and Settings\xxxx(用户名)\Local Settings\Application Data\Unity\Editor,里面有两个文件:

        Editor.log——察看了下内容,属于编辑器在编辑阶段的log输出,主要是编译时产生dll信息,warning和错误。

        Editor-prev.log——这个是运行期的log输出,包括了开发者自己调用Debug.log函数族所输出的信息,以及Mono本身的运行时异常信息

        在Editor-prev.log中终于有所发现:

        StackOverflowException: The requested operation caused a stack overflow.
  at System.Convert.ToInt32 (Double value) [0x00000] in <filename unknown>:0 
  at Test.Scan (Int32 _depth, Int32 _octant, Double _startSlope, Double _endSlope) [0x00041] in     F:\TestDemo\Assets\Test.cs:384 

        就是栈溢出了,看了下Scan函数,是个递归函数,确实会造成栈溢出,走读了下代码,崩溃得以解决。我在想,为什么诸如NullReference之类的异常不会导致Unity3D编辑器崩溃,而栈溢出会导致呢?还是说并非所有的栈溢出异常都回导致编辑器崩溃呢?

小结:当编辑器崩溃无法察看console上的输出信息时,可以到硬盘的目录下寻找线索:

        C:\Documents and Settings\xxxx(用户名)\Local Settings\Application Data\Unity\Editor

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值