是否有一个静态C分析器可以检测未初始化的静态变量?

时间:2018-07-04 16:39:56

标签: c static initialization static-analysis

我们遇到了嵌入式固件中的某些C代码问题,这种问题仅发生在200个系统中的1个系统上,并且归结为在初始化之前使用全局静态变量。

在普通C语言中,这不是问题,因为静态变量被初始化为0,但是此嵌入式系统受空间/时间限制,因此没有cinit,因此静态变量不会归零。

现在我们已经发现了问题,我们已经能够解决它,但是我们希望在将来100%发现它-200个系统中有1个很难找到,下一次可能是5000个中的1个,一百万分之一或更少,所以没有任何测试可以使我们完全放心。

我们使用cppcheck和SonarQube进行静态分析,但是我们还没有找到如何用这些捕获错误的方法。

  1. cppcheck或SonarQube中是否有一个选项可以在初始化之前检测静态全局变量的使用?如果是这样,我们如何使用它?
  2. 如果没有,是否还有其他静态分析工具提供此警告?

0 个答案:

没有答案