frama-c相关内容

了解FRAMA-C切片器结果

我想知道是否有可能使用Frama-C进行某种正向条件切片,我正在使用一些示例来了解如何实现这一点。 我有一个简单的例子,它似乎导致了不精确的切片,我不明白为什么。下面是我要分割的函数: int f(int a){ int x; if(a == 0) x = 0; else if(a != 0) x = 1; return x; } 如果我使用此规范: /*@ ..
发布时间:2022-03-26 20:25:59 其他开发

将WhyML映射到SMT逻辑的确切机制

您好,自动扣款和验证黑客! 为了更深入地了解 WhyML 如何为 ACSL 注释的 C 程序提供证明,我尝试手动“重现"Why3 对WhyML 程序所做的工作,同时将其转换为SMT 逻辑并将其提供给Z3 证明器. 假设我们有以下 C 片段: const int L = 3;int a[L] = {0};int i = 0;而 (i ..
发布时间:2021-10-04 20:37:32 其他开发

Frama-C anagram 函数行为验证

我写了一个 C 函数来检查两个给定的字符串(C 风格)是否是字谜.我尝试用 Frama-C 验证它,但它无法验证函数的最终行为(其他规范有效).第一个进入超时(即使 WP 中的超时值非常高),第二个是未知的. 代码如下: #include //@幽灵字符字母表[26] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l ..
发布时间:2021-08-30 18:31:21 其他开发

如何使用frama-c命令处理printf(& quot;和)和scanf(& amp;")?

我正在使用此代码生成C程序的控制流程图.对于除 printf 和 scanf 之类的内置功能以外的所有功能,它都可以正常工作.我可以在此代码中进行哪些更改以按原样输出内置函数? 打开Cil打开Cil_types放出print_stmt =功能|指令->!Ast_printer.d_instr我|返回_->Format.pp_print_string out“"|转到 _ ->F ..
发布时间:2021-05-29 23:27:32 服务器开发

用Frama-C分析一个简单的C ++程序

我从一个很棒的教程开始学习C ++,该教程位于 https://learnxinyminutes.com/docs/c++/,并希望在Frama-C中分析一个显示引用的最简单示例: 使用命名空间std;#include#includeint main(){字符串foo =“我是foo";string bar =“我是酒吧";弦&fooRef = foo;/ ..
发布时间:2021-04-22 18:45:11 C/C++开发

ACSL后置条件中\ old的含义

我是Frama-C的新手用户,并且对断言有一些疑问 指针上方. 考虑以下涉及的C片段: 两个相关的数据结构Data and Handle,s.t.句柄有一个指向数据的指针; 数据中的“状态"字段,指示某些假设操作是否已完成 三个功能:init(),start_operation()和wait(); 使用上述方法的main()函数,其中包含6个断言(A1-A6) 现在,为什么 ..
发布时间:2020-06-11 19:07:21 其他开发

Frama-C:获取语句的值

我想开发一个Frama-C-Plugin,在其中获取当前语句的值. 借助此帖子 Frama-C插件开发:获得价值分析的结果我能够打印语句的值,但是指针并未以我需要的方式显示. 借助注释,我能够打印整个状态(不仅是语句的变量). 我可以结合这两个:获取语句的变量,但也可以使用取消引用的指针(值)吗? 例如,在语句x=1之后打印非指针将导致x -> {{ NULL -> {1} ..
发布时间:2020-05-19 19:21:46 其他开发

如何在另一个插件中使用WP的结果?

我正在编写一个Frama-C插件,我想知道是否有可能从我的插件中使用WP获得最弱的先决条件,如果可以,那么到底是什么?过去,例如,我曾使用Db.Value在自己的插件中使用EVA插件的结果.是否有类似于WP的Db.Value的东西? 解决方案 WP插件在WP.mli文件中公开其API,该文件是通过收集组成Wp的更高级别模块的接口而生成的.您可以在src/plugins/wp/Wp.mli中 ..
发布时间:2020-05-19 19:19:44 其他开发

如何在Frama-c Value插件的Value.Eval_expr,Value.Eval_op等模块中使用函数

我正在尝试创建frama-c插件.该插件取决于Frama-c Value插件.我想在C源代码中获取并打印所有左值的值集.为此,我想使用Value.Eval_exprs,Value.Eval_op等可用的函数,例如Eval_exprs.lval_to_precise_loc. 不幸的是,我无法找到一种在插件中使用这些功能的方法.我尝试遵循Frama-c插件开发指南的4.10.1节(通过.mli ..
发布时间:2020-05-19 19:16:59 其他开发

Frama-C插件开发:获得价值分析的结果

我正在使用Value-analysis开发适用于Frama-C的插件. 我只是想在每个语句后打印变量(值)的状态(我认为解决方案很简单,但我无法弄清楚). 我在访问者的vstmt_aux方法中使用Db.Value.get_stmt_state来获取当前状态. 现在如何获取变量的值? PS:我找到了这篇文章,但是它没有帮助,没有真正的解决方案,在描述的帮助下,我无法做到这一点: 解 ..
发布时间:2020-05-19 19:08:35 其他开发

如何用frama-c命令处理printf("")和scanf("")?

我使用这段代码来生成一个C程序的控制流图。除了内置函数(如 printf 和 scanf )外,它对所有函数都可以正常工作。我可以在这段代码中更改以输出内置函数吗? 打开Cil 打开Cil_types 让print_stmt出= 函数 | Instr i - > !Ast_printer.d_instr out |返回_ - > Format.pp_print_string ..
发布时间:2018-05-25 17:40:53 服务器开发