首先,我将解释我想在这里做什么:给定一个C大程序,我想输出一个数据的生产者/消费者列表,以及该数据所在函数的调用/被调用函数列表。
为了做到这一点,我正在考虑使用什么计算框架-c的一些模块,如数据流。Ml或书法。然而,当我阅读插件开发人员文档时,我无法看到我们如何能够访问这些模块的数据。
是一个"打开"。Cyl_type"在我自己的插件中是否足够?
此外,以下是我的其他问题:
我尝试使用的方式PDG插件为我的目的,但当我调用它,它说"PDG图形计算",我怎么能访问它?
有没有比官方网页更有关于"影响"插件的文档,更深入,它是如何工作的?(我不得不说,我在像一个预项目阶段,我安装了框架-c与ubuntu上的apt-get,我没有得到一个影响插件工作(我将通过编译源代码看到))
顺便问一下,你认为我用正确的方法来达到我的目的吗?你的问题很不清楚,因此这个答案很笼统。正如开发人员文档中提到的,有两类主要的插件:静态插件,用内核编译,其API在Db
中的模块(通常与插件同名)中公开。动态插件,如Semantic_callgraph
,通过Dynamic
模块动态注册它们的入口点。
如果你在Frama-C源中做make doc
(我不确定Ubuntu中是否有相应的包),你可以访问FRAMAC_SOURCE_DIR/doc/code/html/Db.html
中Db
模块的文档和FRAMAC_SOURCE_DIR/doc/code/dynamic_plugins/Dynamic_plugins.html
中动态插件注册的函数列表。
我认为,按照Virgile的建议,无论如何您都应该获得源代码,因为大多数时候您需要浏览代码以找到您要查找的内容。此外,您可以查看hello_word
插件(在src/dummy/hello_world
中),以获得一个非常简单的插件示例。您还可以在我的网站https://anne.pacalet.fr/Notes/doku.php?id=notes:0061_frama_c_scripts上找到一些示例,以了解如何访问AST中的一些信息。