首页 > 其他 > 详细

cortex-M3/M4死机位置判断

时间:2014-10-09 13:35:33      阅读:229      评论:0      收藏:0      [点我收藏+]

    用了挺久的M4(nxp的),但是发现有一个问题挺让人讨厌的,就是程序死机了无法判断死机位置,之前看到一篇文章是通过查看SP LR等寄存器,看堆栈内容来查找。还要看memory里的地址再找函数地址,再看汇编代码。觉得很麻烦。ARM7内核还好判断一些(M3内核未验证,应该一样的知识M4多了个FPU)。

    偶然一次死机(数组越界)。发现在Call Stack居然直接保存了死机的函数名称和地址。非常滴方便啊,哈哈。直接右键calle stack就能看到函数死在哪儿了。网上很少看到关于死机判断位置的文章。不知道各位的程序是不死机呢?还是早就知道了,个人觉得挺好的所以分享了。具体请看图!

给0地址赋值让其死机:

int *a = 0;
*a = 3;

bubuko.com,布布扣

图1

死在DOWork函数里

 

 

bubuko.com,布布扣 

图2 右键点击Show Callee Code

bubuko.com,布布扣

图3

位置就在这里,三角箭头那儿 上面就是给0地址赋值的地方,汇编代码显示是在调用 Cmd Parse函数前发生的错误。

cortex-M3/M4死机位置判断

原文:http://www.cnblogs.com/dadjun/p/4012663.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!