2015-08-31 1 views
2

Я разрабатываю расширение для Frama-C, и я намерен создать на нем интерфейс конфигурации.Сохранять данные настойчиво для каждого экземпляра Frama-C

Можно ли сохранять состояния в Frama-C независимо от проекта или сеанса, т.е. например, сохранить конфигурацию, которая будет загружена с каждым экземпляром?

Я попытался с помощью State_builder, но, похоже, данные привязаны к соответствующему проекту.

ответ

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 и используемый графическим интерфейсом для чтения и записи форматированных файлов конфигурации, найденных в cilconfig.mli, но в основном ваш плагин может выбрать любой формат для своей собственной конфигурации.

Смежные вопросы