【发布时间】:2014-04-22 15:13:57
【问题描述】:
我尝试使用frama-c-gui 并且能够执行影响分析
但我无法弄清楚我们如何传递需要在 Frama-C 的批处理模式下执行影响分析的语句编号。
【问题讨论】:
标签: frama-c
我尝试使用frama-c-gui 并且能够执行影响分析
但我无法弄清楚我们如何传递需要在 Frama-C 的批处理模式下执行影响分析的语句编号。
【问题讨论】:
标签: frama-c
有一个特殊的注解//@ impact pragma stmt;,您可以使用它来表明您对注解后面的语句的影响感兴趣。然后,如果该注释在函数f 中,您可以使用以下命令行在命令行上打印受影响的代码:
frama-c -impact-pragma f -impact-slicing impact.c -then-on "impact slicing" -print
-impact-pragma f 表示您对函数 f 中的 pragma 标记的语句感兴趣
-impact-slicing 表示您要创建一个名为 impact slicing 的项目,其中包含受您选择的语句影响的语句。-then-on "impact-slicing"让你继续对项目impact slicing进行分析(这里我们只写-print代码,但你可以在-then-on project_name后面放任何你喜欢的选项)但请注意,impact 插件是相当实验性的。
【讨论】:
-impact-not-in-callers 将阻止调用者中的分析,但默认不激活。
impact slicing 项目和Cil_datatype.Stmt.loc 函数上使用访问者,这应该不会太难。有关 Frama-C 脚本的更多信息,请参阅 Frama-C 的开发人员手册 (frama-c.com/download/plugin-development-guide-Neon-20140301.pdf)。