单片机内存溢出查找方式
发布时间
阅读量:
阅读量
我所知道的内存溢出分为两种,一种是数组溢出,一种是堆栈溢出。
该内存溢出定位方法:通常内存溢出会涉及数组。首先确定内存溢出涉及的具体变量。随后查阅相关地址映射文件。按照一定的顺序往上查找, 以该溢出变量为基础地址寻找相关的数组, 接着在代码中可以找到该特定数组的数据填充情况. 通常会搜索约3至5个相关联的数组. 如果经过上述步骤仍未能发现明显的异常行为, 则可考虑采用以下优化策略进行排查.
另一种用于定位内存溢出的方法:它类似于在pcb板上使用的割线工具,并通过while死循环机制来实现定位过程。该方法的前提条件是必须预先了解内存溢出涉及的具体变量。
语句如下:
While(A);
此处A必须为全局变量;同时它也可以代表某变量或某条语句;例如当A<10时;程序将在此处陷入死循环
在while(A)循环体中如何进行配置?该条件判断语句通常建议使用超过两行代码,并尽量覆盖更多的代码逻辑。如果没有明确的设计思路或方案可用性较差的情况下,请考虑将函数模块直接嵌入到主程序流程图中,并根据具体需求灵活安排至少三个以上的操作步骤的位置。
举个栗子:
uint8 B(void)
{
uint8 ret;
while(A<10000)
/*********************************
This is your Code。
全部评论 (0)
还没有任何评论哟~
