c - 是否有一个静态 C 分析器可以检测未初始化的静态变量?
问题描述
我们在嵌入式固件中遇到了一些 C 代码问题,该问题仅出现在 200 个系统中的 1 个系统上,归结为在初始化之前使用全局静态变量。
在普通的 C 语言中,这不是问题,因为静态变量被初始化为 0,但是这个嵌入式系统的空间/时间受限,没有 cinit,所以静态变量不会被归零。
现在我们已经发现了问题,我们已经能够修复它,但是我们希望在未来 100% 发现它 - 200 个系统中有 1 个很难找到,下一次它可能是 5000 个中的 1 个,1 个中的 1 个百万或更少,所以再多的测试也不能给我们完全的信心。
我们使用 cppcheck 和 SonarQube 进行静态分析,但我们还没有找到如何用它们来捕获这个错误。
- cppcheck 或 SonarQube 中是否有一个选项可以在初始化之前检测静态全局变量的使用?如果是这样,我们如何使用它?
- 如果没有,是否有任何其他提供此警告的静态分析工具?
解决方案
推荐阅读
- avahi - avahi 编译错误“找不到 libgdbm.so”ubuntu 16.04?
- sql-server - 是否可以将 NULL 从 Typescript 传递到 SQL Server 存储过程
- c# - 此平台不支持文件加密
- azure - Azure:将 ASP.Net Core SDK 更新到 1.0 到 2.1.203 并收到有关 System.Data.SqlClient 的错误
- regex - Angular2-6、正则表达式和输入装饰器
- oauth-2.0 - Gitlab oauth2 访问令牌不能通过 http 使用 git
- java - 当您可以只使用具体类型时,为什么会有带有上限的通配符?
- javascript - Angular 6 - 由于 NGRX,生产构建失败
- axapta - 如何在选择时从组合框表 microsoft dynamics ax 2012 x++ 中获取值
- android - 如何解决此错误 Lineage 14.1 buld for morotola moto c