c – 在大项目中寻找零

前端之家收集整理的这篇文章主要介绍了c – 在大项目中寻找零前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
最近,我们的大项目开始以未处理的划分为零.没有最近的代码似乎包含任何可能的元素,因此它可能是影响旧代码的新数据集.问题是代码基础相当大,并且在没有舒适的调试访问的嵌入式设备上运行(通过串行控制台调试大量的printf()),设备没有gdb,即使有,用调试符号编译的二进制文件将不适用).

最可行的方法可能是找到所有的分割操作(它们相对不频繁),并分析每个分割操作的代码,以查看是否有任何除数变量未被保护.

那么问题是如何在一个大的(约200个文件,一个大的)C项目中找到所有的分区操作,或者如果你有一个更好的主意如何找到错误,请给他们.

额外的信息:项目运行在嵌入式ARM9,一个小型定制的Linux发行版,与Cygwin / Windows交叉编译器交互编译,IDE是Eclipse,但也有Cygwin与各种各样的好东西.事情是项目是非常硬件特定的,并且崩溃只有在全能运行时才会发生,所有必需的互连模块都处于活动状态.只有裸骨活动的限制“故障模式”不会创建它们.

解决方法

通过自定义 grep搜索,查找所有部门不应该很难.您可以轻松地将该用法与C中的/和%字符的其他用法区分开来.

另外,如果你知道你正在分割什么,你可以全局地重载/和%运算符以使__FILE__和__LINE__通知断言.如果使用makefile,则不必在所有链接文件中包含自定义运算符代码,而不用触摸代码.

猜你在找的C&C++相关文章