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