现象:
1、刚把程序载进去,还没运行,堆栈就快满了
刚刚把程序下载进去,还没有运行,就提示堆栈快溢出了:Wed Apr 25 16:12:28 2012: The stack 'Stack' is filled to 99% (4992 bytes used out of 5000). The warning threshold is set to 90.%
我尝试过:把栈设成2048,3000,4000,5000 均无济于事。 如果是数组越界或者中断造成的问题,那么应该是运行之后产生的,而不应该是下载进去就产生。
2、程序运行起来后,堆栈使用量有变回正常状态。
程序运行起来后,堆栈使用量有变回正常状态,那开始的中断溢出是什么情况??
3、删除掉主函数中的某些函数或者把在main之前的某些注释掉的函数回复,可以消除下载堆栈溢出的症状,但是运行到某些函数(固定的)内的时候,还是会出现堆栈溢出警告。
4、如果运行中出现堆栈溢出警告的话,没执行一步,堆栈内的数据一直都有变化,变化区域非常的大,而且数据均为 3f ff 等数据 3f ff 出现概率最大 最多几乎全是。
5、堆栈设成4000或者5000的时候,刚下载进去就报堆栈要快溢出,占堆栈的98%/99%.但是诡异的是,我把堆栈设成2048的时候,一下载进去报警堆栈要溢出,但是所占的却是90% or 93% 比4000和5000还少. 异或不解。非常诡异 把堆栈设成1000 ,竟然没事了,下载和运行都不会出现堆栈溢出警告。更加不理解了
6、删掉sprintf()函数后,下载和运行都没有出现堆栈溢出警告。
但是sprintf()我以前的版本也有用到,没有出现过这个问题。
高手出招灭到它吧!!!!!!!!!!
相关图片在这里有:
http://topic.csdn.net/u/20120505/20/431fab75-9cb3-42d8-aa92-0ef919030c51.html
此帖出自
小平头技术问答
一周热门 更多>