笔者来学习了解一下静态扫描以及其规则,并且亲身是实践一下对arm 架构的代码进行扫描。
1、静态扫描认识
- 静态扫描:对代码源文件按照一定的规则进行扫描,来发现一些潜在的问题或者风险,因为不涉及代码运行,所以其一般只是发现一些规范或则一些质量问题,当然这些可能存在潜在的问题和风险。
- 与静态相对应的就是动态,那么上篇文章介绍的覆盖率就是动态,通过单元测试或者模拟器,可以对源代码进行插桩,之后进行测试,可以得到动态的代码执行情况,进而转化成覆盖率。覆盖率文章可以参考这篇ARM学习(35)单元测试框架以及MinGW GCC覆盖率报告。
来举个例子,以下这段代码没有被引用,扫描就会提到:external symbol symbol was defined but not referenced