我正在使用多线程嵌入式应用程序.每个线程根据其功能分配堆栈大小.最近我们发现其中一个线程通过定义一个超过堆栈大小的局部变量数组来破坏堆栈.操作系统是uItron.
我的解决方案,我注册了一个10 mS的计时器,这个计时器将检查堆栈损坏.
堆栈损坏检查方法,1.用一些独特的模式初始化堆栈内存(我使用0x5A5A5A5A)2.从时间检查堆栈内存的顶部是否仍为0x5A5A5A5A
我的问题,
有没有更好的方法来检查这种类型的腐败
忘记添加,立即添加:操作系统:Itron,处理器:ARM9.编译器:不是GCC(特定于ARM9由处理器供应商提供)......并且没有内置支持堆栈检查......