为每个Frama-C实例持久保存数据

时间:2015-08-31 16:06:45

标签: frama-c

我正在开发Frama-C的扩展,我打算在其上创建一个配置界面。

是否可以独立于项目或会话保存Frama-C中的状态,即。例如,保存将加载每个实例的配置吗?

我尝试使用State_builder,但似乎数据已附加到相应的项目中。

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您需要以下三件事:

  • 配置文件的名称,例如let config_file () = MyPlugin.Config.file ~error:false "my_plugin.conf"。请参阅Config中的模块plugin.mliSpecific_dir中的模块类型parameter_sig.mli的文档。

  • 加载插件后加载配置的挂钩:let () = Cmdline.run_after_extended (fun () -> load_config (config_file()))。您可能希望在Frama-C启动过程的另一个阶段加载配置,如cmdline.mli

  • 中所述
  • 用于在Frama-C退出时保存配置的挂钩:let () = Cmdline.at_normal_exit (fun () -> save_config (config_file())

有一种旧机制,继承自Cil并由GUI用于读取和编写格式化配置文件,可在cilconfig.mli中找到,但基本上您的插件可以为自己的配置选择任何格式。