这次在处理售后一个项目的时候,发现一个程序BUG,因为这个是客户自己写的,在运行过程中,机械手能够正常运行,但是在每隔三四十分钟后都会报028错误代码,输出框也会提示not enough memory 内存不足的提示,如图
一开始以为是电脑运行内存的问题,排查后又没有问题,机械手控制器也换过,还是无法解决,这个时候就决定再好好去推敲一下代码,最后发现是一个最基础的问题,就是function循环嵌套,如图
本来主程序就是一个死循环的一个动作,进入子程序中发现一个function里面,嵌套着另外一个function,最后一个function里面又嵌套着刚开始的一个function,这样一直运行下去,一个function没运行完又接着运行一个function,最终形成了一个无限嵌套,导致内存溢出报警