我正在开发Frama-C的扩展,我打算在其上创建一个配置界面。
是否可以独立于项目或会话保存Frama-C中的状态,即。例如,保存将加载每个实例的配置吗?
我尝试使用State_builder,但似乎数据已附加到相应的项目中。
答案 0 :(得分:2)
如果我理解正确,您需要以下三件事:
配置文件的名称,例如let config_file () = MyPlugin.Config.file ~error:false "my_plugin.conf"
。请参阅Config
中的模块plugin.mli
和Specific_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
中找到,但基本上您的插件可以为自己的配置选择任何格式。