如何将插件的结果复制到另一个项目?

时间:2017-04-29 14:33:12

标签: ocaml frama-c

在Frama-C中,我想将Value之类的插件的结果从一个项目复制到另一个项目。我到底该怎么做?我猜测我必须使用Project.copy和正确的State_selection,但是对于Value会是什么?更一般地说,如何确定给定插件的State_selection是什么?

1 个答案:

答案 0 :(得分:3)

不幸的是,插件之间没有统一的机制。对于EVA 1 插件,您可能会执行类似

的操作
let selection = State_selection.with_codependencies Db.Value.self in
Project.copy ~selection ~src dest

以捕获EVA的状态以及它所依赖的中间状态。

那就是说,我建议不要试图复制Frama-C内部状态的这么大部分内容。它非常容易出错并暗示使用神秘的API。如果你能负担得起,其他两个解决方案似乎更容易:

  • 在原始项目中工作,可能通过File.create_copy_from_visitor创建一个带有新AST的新项目。
  • 使用Project.copy复制整个项目并处理新项目。

1 E volved V alue A nalysis,值的新名称