第387章 崩溃的原因(2 / 2)
他们做系统,是随时进行更新的,非常重视搜集使用者的使用情况反馈,一旦发现,就必须解决,就是怕这样的情况出现在演戏或者战场当中,那到时候这就不是BUG,而是事故了。
很明显,这次遇到的闪退现象是一个新的BUG。
由于里面基本就只有这个控制程序,连桌面都没有,闪退之后,整个系统看上去就是一篇淡淡的黑色,系统还是是在运行,只是他们的控制程序崩溃了。
“经过测试,只有我们现在这个版本才有这个现象,其他版本都是好的。”曹兴平说道,“这次我们因为升级和改写的代码不多,我正在让他们在一步步跟踪调试,应该很快就能找到原因。”
对于这样的情况,他们的处理经验非常丰富,基本上已经形成了一整套固定的处理流程,只要按照这个流程来做,就可以迅速找到问题的根源所在,为他们节省不少时间。
林鸿站在旁边,对于他们这个工作,有点无语。
一方面是佩服他们能够将这个简单的系统用得这么顺,另外则是对他们在如此重要的场合使用一个国外的闭源系统而感到不可思议。
他心中已经对这个雷达系统的具体参数泄露有了个腹案,基本上只要稍微验证一下,可能就能找到泄露的原因。
一会儿之后,余波就已经将问题的根源找了出来。
原因很简单,他们在使用一个函数返回值的时候没有做判断,不知道为什么,这个函数并没有能够成功执行,其返回值为NU1”也就是为空,这并不是有效的数值,最终导致了整个控制程序的崩溃。
一个小小的返回值而疏忽了检查,于是导致了整个程序的崩溃……
林鸿强忍着没有让自己的脸部肌肉发生变化。
这样的情况,如果出现在通用的操作系统中,还是可以接受的。但是,现在竟然出现在一个军事领域的雷达控制系统中,是在是让他有点无语。
现在的问题是,为什么这个函数没有返回值?
曹兴平和余波都感到很奇怪,翻来覆去地研究了半天都没有找到答案。
“不可能啊,之前应该都是好好的,为什么现在会这样?这个函数为什么没有返回值?”余波嘴里念叨道。
其实要修复这个BUG进行很简单,就是在代码里面对这个返回值进行判断即可,没有返回值,则不做处理,直接忽略掉就行了,这个软件便不会再崩溃了,并且也不影响大局。
但是,他们必须搞清楚,这个函数为什么没有返回值?
理论上来讲,这个情况是非正常的,不在他们的计划之内。
为了搞清楚原因,余波把系统进行了重启,进去之后,发现系统变得正常了。
测试了几次,执行了一些功能,也没有那个现象。
接下来,他进行了关键的一步操作,也就是将控制程序进入静默状态,类似于电脑中的待机省电状态,然后再启动,结果又出现了这种情况,和刚才如出一辙。
控制程序还是闪退!
进入调试将返回值DUMP出来,发现又是那个函数又没有返回值而导致的。
也就是说,第一次的时候,那个函数是正常执行了的,而进入静默状态之后,这个函数也就关闭了,但是在此启动,却没有成功,返回了NU11值。
于是,余波开始了一次又一次的调试。
重启、修改、测试。
各种方法都用遍了,仍然找不到问题到底出在哪里。
他都快要疯掉了!
徐直中在旁边看了一会儿,也有些心烦,正想将曹兴平喊去他办公室,一起商量一下有关泄密的事情,这个时候,林鸿终于忍不住开声了:“这应该是有东西接管了SDK里面的那个调用函数,导致你们的函数无法执行,所以才导致返回NULL值。”
“接管了调用函数?”
那个技术员顿时摇头。
“不应该,那个函数是系统的底层函数,在用户层根本没有进行修改的权限。”
曹兴平闻言,则稍微思索了一下,觉得他的话非常有道理,这样才能解释得通。
他有些讶然地看了林鸿一眼,问道:“你对这个系统也有研究?”
“我们就是做这一行的,自然对常见的系统都要深入研究。”
说完,林鸿又对那个技术员道:“权限要自己动手去拿,不会自动送上门。”