Frama-C的可扩展打印机和项目

时间:2017-01-24 07:53:23

标签: frama-c

我正在尝试更改函数的行为并将结果打印到文件中。插件开发指南中描述的ViewCfg插件做了类似的事情,但我试图避免使用ViewCfg使用的Ast.get。我正在考虑扩展Printer.extensible_printer,根据Frama-C API文档,如果我想获得自定义的漂亮打印机,我可以做的事情。

但是,如果按照API文档中的描述扩展漂亮的打印机,除非我做错了,我注意到无论将哪个项目设置为当前项目,我所做的更改都会发生。在使用自定义漂亮打印机之前,我正在使用File.create_project_from_visitor创建一个新项目,并Project.set_current将新项目设置为当前项目。

扩展Printer.extensible_printer的类所做的任何更改是否适用于所有项目?我碰巧使用的是frama-c-Aluminum-20160502,我知道这不是最新版本。

编辑:对不起,我应该在开始时更清楚,但我实际上并没有对函数的行为进行更改。我正在阅读函数的行为,然后基于此,我正在尝试生成输出有效的C代码,该代码意味着被另一个程序读取为输入。

关于AST.get,我唯一的理由就是它听起来像得到了整个AST,而我只对它的一部分感兴趣,即行为。但如果我只是通过避免它来让自己变得更难,那么我会继续使用它。

0 个答案:

没有答案