这是 goto-cc 命令,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
cbmc - C/C++ 和 Java 程序的有界模型检查器
概要
生化危机 [ - 财产 属性 ID] 文件.c ...
生化危机 [--show-属性] 文件.c ...
生化危机 [--所有属性] 文件.c ...
转到抄送 [-一世 包含路径] [-C] 文件.c [-要么 输出文件]
转到仪器 入档 输出文件
这里只列出最有用的选项; 其余部分见下文。
商品描述
生化危机 生成证明如何违反断言的跟踪,或证明
在给定的循环迭代次数内不能违反断言。 CBMC 可以读取
直接源代码,或由 goto-cc 生成的 goto-binary。 Java程序被给出为
类文件。 没有任何进一步的选项,cbmc 检查所有属性(自动
生成或用户指定)在程序中找到。 如果任何属性都可以
违反,则打印反例并中止分析。 分析可以是
使用 --property 选项限制为特定属性。 验证结果
所有属性都可以通过 --all-properties 选项获得。
转到抄送 读取源代码,并生成一个goto-binary。 它的命令行界面是
旨在模仿 GCC(1). 特别要注意的是 转到抄送 区分
编译和链接阶段,就像 gcc 一样。 生化危机 期望一个转到二进制文件
链接已完成。
转到仪器 读取 goto-binary,执行给定的程序转换,然后
将生成的程序作为 goto-binary 写入光盘。
通常的流程是 (1) 使用 goto-cc 将源代码转换为 goto-binary,然后 (2)
使用 goto-instrument 执行检测,最后 (3) 执行分析
生化危机。
配置
FRONTEND 配置 (CBMC 和 转到-cc)
-I 路径
设置包含路径 (C/C++)
-D 宏
定义预处理器宏 (C/C++)
--预处理
预处理后停止
--显示符号表
显示符号表
--show-goto-函数
显示转到程序
建筑 配置 (CBMC 和 转到-cc)
生化危机 默认情况下使用与机器匹配的架构设置 生化危机 is
执行,即,仅在验证软件时才需要以下设置
旨在运行在不同的体系结构或操作系统上。 转到抄送 生成一个转到二进制文件
特定架构,即 goto-binary 之后架构不能改变
产生。
--16、--32、--64
设置 int 的宽度
--LP64,--ILP64,--LLP64,--ILP32,--LP32
设置 int、long 和指针的宽度
--小端
允许小端字字节转换
--大端
允许大端字字节转换
- 无符号的字符
默认情况下使“char”无符号
--arch 设置目标架构
--os 设置目标操作系统
--无拱
不要建立架构
--无图书馆
禁用内置抽象 C 库
--round-to-nearest,--round-to-plus-inf,--round-to-minus-inf,--round-to-zero
程序开始时使用的 IEEE 浮点舍入模式(默认为舍入
到最近)。 正在验证的程序可以覆盖此设置,例如,
围场(3)。
课程 仪器仪表 配置 (CBMC 和 转到仪器)
以上皆是 生化危机 和 转到仪器 可以生成捕获特定常见错误的断言,
如下所列。
--边界检查
启用数组边界检查
--除以零检查
启用除以零检查
--指针检查
启用指针检查
--签名溢出检查
为有符号整数算法启用算术上溢和下溢检查
--无符号溢出检查
为无符号整数算术启用算术上溢和下溢检查
--nan-检查
检查 NaN 的浮点计算
--无断言
忽略用户提供的断言
--无假设
忽略用户提供的假设
--error-label 标签
检查给定的标签是否无法访问
课程 仪器仪表 配置 (转到仪器 只有)
转到仪器 支持进一步、更复杂的程序转换。
--非易失性
使从 volatile 变量的读取变得不确定
--isr 函数
检测具有给定名称的中断服务例程
--mmio 仪器内存映射 I/O
--nondet-静态
具有静态生命周期的变量被非确定性地初始化
--转储-c
输出 ANSI-C 源代码而不是 goto 二进制文件。
BMC 配置 (CBMC)
--所有属性
报告所有属性的状态
--显示属性
只显示属性
--显示循环
显示程序中的循环
--cover-断言
检查哪些断言是可达的
--函数名
设置主函数名
--属性ID
仅检查具有给定标识符的特定属性
--程序专用
只显示程序表达式
--深度nr
限制搜索深度
--放松nr
展开循环 nr 次
--unwindset L:B,...
以 B 为界展开循环 L(使用 --show-loops 获取循环 ID)
--显示-vcc
显示验证条件
--切片公式
删除与财产无关的分配
--无展开断言
不生成展开断言
--没有漂亮的名字
不要简化标识符
后端 配置 (CBMC)
--迪马克斯
生成 DIMACS 格式的 CNF 以供外部 SAT 求解器使用
--美化贪婪
美化反例(贪心启发式)
--smt1 SMT1 语法中的输出子目标(实验性)
--smt2 SMT2 语法中的输出子目标(实验性)
--布尔型
使用 Boolector(实验性)
--数学卫星
使用 MathSAT(实验性)
--cvc 使用 CVC3(实验性)
--yices
使用 Yices(实验性)
--z3 使用 Z3(实验性)
--细化
使用细化程序(实验)
--outfile 文件名
输出公式到给定文件
--arrays-uf-从不
永远不要将数组变成未解释的函数
--arrays-uf-总是
始终将数组转换为未解释的函数
环境
所有工具在生成临时文件和
目录。 此外请注意,CBMC 使用的预处理器将使用环境
变量来定位头文件。 GOTO-CC 旨在接受所有环境变量
海湾合作委员会可以。
版权
2001-2014,丹尼尔·克罗宁,埃德蒙·克拉克
使用 onworks.net 服务在线使用 goto-cc