(转)关于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
最新文章
- C#设计模式(2)——简单工厂模式
- 黑马程序员——C语言基础 内存剖析
- Hrbustoj 2252 完全背包
- 不允许调用库函数,也不允许使用任何全局或局部变量编写strlen函数
- Helpers\PHPMailer
- Wix: Using Patch Creation Properties - Small Update
- 【Xamarin挖墙脚系列:多窗口之间的导航】
- Android Learning:数据存储方案归纳与总结
- ABP入门系列(12)——如何升级Abp并调试源码
- Java并发编程的艺术读书笔记(2)-并发编程模型
- mybatis:Parameter &#39;ids&#39; not found.
- HDU 1250
- ss搭建
- SpringMVC实现 MultipartFile 文件上传
- 百度地图API的网页使用
- poj1001 Exponentiation【java大数】
- 高斯混合模型(理论+opencv实现)
- MySQL数据库(7)----数据库的选择、创建、删除和更改
- ZOJ 2532 Internship(最大流找关键割边)
- Windows下使用Nginx+tomcat配置负载均衡
热门文章
- shell编程 if 注意事项
- Cannot read property &#39;resetFields&#39; of undefined 问题及引申
- 数据结构&;图论:K短路-可持久化可并堆
- 谈pkusc2016的几道数学题
- bzoj3223 文艺平衡树 codevs3303 翻转区间
- bzoj1036: [ZJOI2008]树的统计Count link-cut-tree版
- bzoj 2243 树链剖分
- 【Python实例二】之前期准备:Windows下的BeautifulSoup安装
- ZOJ 3598 Spherical Triangle球面几何公式应用
- Stack的三种含义 ----超级经典 明白了 栈 的三种含义