找到出问题点,才是根本
产生的异常的原因太多了,比如memory访问到无效空间,比如寄存器读写异常
出现这个中断是好事,它明确告诉了我们隐藏的问题。
我调试的时候喜欢在中断服务程序中放入LCM显示“我是超级错误,专干坏事的”,Release出去的时候改为“内部错误,请联系方案提供商”。
好了,“授人以鱼,不如授人以渔”,我就说下如何找到产生这个bug的根源。
用仿真器,想方设法故意让程序进入此异常中断(让客户提供尽可能多的信息是非常有帮助的)。
然后停止运行,打开堆栈窗口,找上一级一级的找,问题点就暴露出来了,一般不会超过5分钟。
如果你的仿真器有trace功能,那更强大了,各级堆栈的详细信息一览无余,就更easy了。
|