今天终于让我碰上了,无响应了,毫无疑问,马上放下一切工作,Attach上去。
首先看下任务管理器,cpu 13% ,应该是死循环了。(注意 win7死循环是不会cpu 100%的)。
运行!runaway, 发现0号线程特别费时,也就是主线程。
然后切到0号线程,查看堆栈,妈蛋什么都没有。
这里我纠结了好久,然后g了一下,又打断点,堆栈突然出现了。
不过还是没啥直接的函数名,只知道是Update()函数里面。
然后只能看汇编了。当然你很难一下子就找到入口,并且一句一句分析,我是先通篇运行,知道大概的一个流程和大致都有哪些指令。
比如看到了Transform.GetPosition,我就知道了这个函数肯定有position, 然后还是有fld指令,也就是说肯定操作了浮点数。
另外我这个人的脾气就是坚决不写死循环,所以我可以肯定自己是不会在for中写出死循环的,因为for我用的非常熟练,i--这种东西我从来不写。
那么肯定是while了,查找全局代码,就找到了两处while.
观察法了一下,我操,真是有的,但还不能大意,稍微验证