静态代码分析/代码注释

时间:2012-03-12 17:29:42

标签: annotations static-analysis

我正在编写像状态机一样工作的代码。所以:

  • 某些功能正在设置特定状态
  • 允许其他人在特定状态下执行。

(实际上它有点复杂,但这些是基础知识,以保持简单。)

目前,我使用运行时断言来检查当前状态是否允许函数。这很好,因为它是一种自我记录;此外,我可以在断言上使用调试器停止并知道错误的位置。但缺点是它需要编译代码,并且在测试期间我需要找到自定义输入来触发相应的断言。

顺便说一句,我知道Windows WDK提供了注释,例如:

__drv_maxIRQL
__drv_setsIRQL

使用PreFAST静态检查这些注释,如果需要,可以触发错误。这种代码规范的静态验证正是我所需要的。

所以问题是:是否有任何工具可以为以状态机形式指定的程序提供类似的功能?

1 个答案:

答案 0 :(得分:2)

Frama-C插件Aoraï或多或少完全符合您所描述的C程序,具有静态验证的可能性。它不依赖于PreFAST,而是依赖于Frama-C平台的可比验证工具。

相关问题