首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不承认具有Frama-c的RTE插件:“-rte-无符号-ov”

不承认具有Frama-c的RTE插件:“-rte-无符号-ov”
EN

Stack Overflow用户
提问于 2019-07-13 16:03:33
回答 1查看 103关注 0票数 1

我是新来的。我正在尝试使用rte插件生成注释。通过查看链接1,我尝试使用以下命令生成注释:

frama-c -rte -rte-未签名-ovtest.c

其中我的test.c包含

代码语言:javascript
复制
int main(void){
  signed char cx, cy, cz;
  cz = cx + cy;
  return 0;
}

我从2节2.1.2中复制了代码。我希望rte将生成以下注释并修改test.c文件:

代码语言:javascript
复制
/*@ assert rte: signed_overflow: -2147483648 <= (int)cx+(int)cy; */
/*@ assert rte: signed_overflow: (int)cx+(int)cy <= 2147483647; */

但是,它没有生成任何注释(没有修改test.c),而且frama-c无法检测选项“-rte-unsigned”。它向我展示了

代码语言:javascript
复制
[kernel] User Error: option `-rte-unsigned-ov' is unknown. 

我还尝试了命令"frama-c -rte test.c“,但是没有生成注释。我已经尝试过19.0和18.0版本的frama。

如果有人能帮我找出我错过了什么,那就太好了。谢谢。

1

2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-16 09:36:57

这里有两个问题,一个是您对Frama会做什么的理解,另一个是https://frama-c.com/rte.html提供的文档中的问题。

让我们从第二点开始:文档已经过时了,您可能应该在https://github.com/Frama-C/Frama-C-snapshot/issues上打开一个问题。RTE手册为您提供了第2.3节中选项的新名称,即-warn-unsigned-overflow

对于第二点,Frama永远不会修改您的输入文件。相反,您可以要求它重新打印它使用选项-print解析的代码源。您还可以使用选项-ocode <file>将此结果重定向到一个文件中。在RTE插件运行之后,您必须这样做,因此需要使用-then操作符。

因此,完整的命令行应该是

代码语言:javascript
复制
frama-c test.c -rte -warn-unsigned-overflow -then -print -ocode <yourfile>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57020749

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档