最近,我们的大项目开始以未处理的划分为零.没有最近的代码似乎包含任何可能的元素,因此它可能是影响旧代码的新数据集.问题是代码基础相当大,并且在没有舒适的调试访问的嵌入式设备上运行(通过串行控制台调试大量的printf()),设备没有gdb,即使有,用调试符号编译的二进制文件将不适用).
最可行的方法可能是找到所有的分割操作(它们相对不频繁),并分析每个分割操作的代码,以查看是否有任何除数变量未被保护.
那么问题是如何在一个大的(约200个文件,一个大的)C项目中找到所有的分区操作,或者如果你有一个更好的主意如何找到错误,请给他们.
额外的信息:项目运行在嵌入式ARM9,一个小型定制的Linux发行版,与Cygwin / Windows交叉编译器交互编译,IDE是Eclipse,但也有Cygwin与各种各样的好东西.事情是项目是非常硬件特定的,并且崩溃只有在全能运行时才会发生,所有必需的互连模块都处于活动状态.只有裸骨活动的限制“故障模式”不会创建它们.