首页 > 代码库 > cortex-M3/M4死机位置判断
cortex-M3/M4死机位置判断
用了挺久的M4(nxp的),但是发现有一个问题挺让人讨厌的,就是程序死机了无法判断死机位置,之前看到一篇文章是通过查看SP LR等寄存器,看堆栈内容来查找。还要看memory里的地址再找函数地址,再看汇编代码。觉得很麻烦。ARM7内核还好判断一些(M3内核未验证,应该一样的知识M4多了个FPU)。
偶然一次死机(数组越界)。发现在Call Stack居然直接保存了死机的函数名称和地址。非常滴方便啊,哈哈。直接右键calle stack就能看到函数死在哪儿了。网上很少看到关于死机判断位置的文章。不知道各位的程序是不死机呢?还是早就知道了,个人觉得挺好的所以分享了。具体请看图!
给0地址赋值让其死机:
int *a = 0;
*a = 3;
图1
死在DOWork函数里
图2 右键点击Show Callee Code
图3
位置就在这里,三角箭头那儿 上面就是给0地址赋值的地方,汇编代码显示是在调用 Cmd Parse函数前发生的错误。
cortex-M3/M4死机位置判断
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。