堆栈溢出?

2019-07-14 13:20发布

做的一个流量计。DEBUG的时候提示

Sun Mar 17, 2013 11:13:14: The stack 'Stack' is filled to 95% (76 bytes used out of 80). The warning threshold is set to 90.%
Sun Mar 17, 2013 11:13:37: Breakpoint hit: Code @ TEMP_PRESS.c:191.5
Sun Mar 17, 2013 11:13:37: The stack 'Stack' is filled to 100% (80 bytes used out of 80). The warning threshold is set to 90.%
Sun Mar 17, 2013 11:13:41: Breakpoint hit: Code @ TEMP_PRESS.c:191.5
Sun Mar 17, 2013 11:13:41: The stack 'Stack' is filled to 100% (80 bytes used out of 80). The warning threshold is set to 90.%
Sun Mar 17, 2013 11:14:28: Breakpoint hit: Code @ TEMP_PRESS.c:191.5

一开始使用95%  后来一直就是100% 这是什么原因呢? 有什么危害?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
18条回答
shimx
1楼-- · 2019-07-15 15:26
一般的调试器会预先用某个特定值比如0xFF来初始化所有的堆栈

然后在每次代码中断运行,进入调试状态的时候去检查一下堆栈,看看堆栈内的数据有多少已经不是0xFF,就意味着代码已经使用了多少堆栈
jiaxw
2楼-- · 2019-07-15 19:01
 精彩回答 2  元偷偷看……
spark周
3楼-- · 2019-07-15 23:28

代码本身有些问题,有些数据误写入堆栈区域了。实际的堆栈可能只用了30%,但是代码误操作了堆栈最后面的地址,导致调试器初始化的值被修改了。调试器也就认为堆栈越界了。
jkl21
4楼-- · 2019-07-15 23:34
大部分都是因开启了中断
maqianqu
5楼-- · 2019-07-16 05:17
用的是哪个版本的IAR和哪个版本的SDK
dspmana
6楼-- · 2019-07-16 05:23
开启了相关中断但是没有中断服务程序

一周热门 更多>