这是可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行的命令 spatch,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
spatch - 将语义补丁文件应用于一组 C 文件
概要
修补 --sp-文件 [-要么 ] [--iso-文件 ] [ 选项 ]
商品描述
修补 是C的程序匹配和转换工具。程序员描述了
要匹配的代码和要作为语义补丁执行的转换,这看起来像一个
标准补丁,但可以在任意数量的代码站点转换多个文件。
有关 spatch 的更多信息,请访问 http://coccinelle.lip6.fr/.
语义补丁示例可以在 http://coccinellery.org/,并在
脚本/可可西内尔 Linux内核源代码的目录。
配置
以下是最常用选项的摘要:
--sp-文件
语义补丁文件
--目录
递归处理目录中的所有文件
--iso 文件
(默认=@SHAREDIR@/standard.iso)
--宏文件
(默认=@SHAREDIR@/standard.h)
-调试
打印一些信息以帮助调试匹配过程
--all-包括
导致使用所有可用的包含文件
--不包含
导致甚至不使用本地包含文件
-I
包含包含文件的目录
--包含标题
独立处理头文件
--use-瞥见
与--dir一起使用,使用由glideindex生成的信息
-o
输出文件。 如果未指定,则在标准输出上生成补丁
- 到位
直接修改文件
--外地
将修改存储在 .cocci_res 文件中
- 版
显示 spatch 的版本
- 日期 显示编译 spatch 的日期
--简短的帮助
查看选项的简短列表
--长帮助
查看不同类别中的所有可用选项
-帮助, - 帮帮我
显示选项摘要。
示例
./spatch --sp-文件 foo.cocci foo.c
将语义补丁 foo.cocci 应用到 C 文件 foo.c。 应用语义补丁
以标准.iso 中包含的一组同构为模(standard.iso 默认位于
在@SHAREDIR@/standard.iso)。 显示应用程序效果的补丁(如果有)将
在标准输出上生成。
./spatch --sp-文件 foo.cocci foo.c -o /tmp/newfoo.c
与上面相同,只是 foo.c 的修改版本存储在 /tmp/newfoo.c 中。
也可以对目录中的所有 C 文件应用 spatch:
./spatch --cocci-file foo.cocci --dir foodir
如果语义补丁没有按预期工作,选项 --debug 显示选择
有关将语义补丁应用于文件或目录的信息。
了解更多 配置
主要选择
--sp-文件
语义补丁文件
-o 输出文件
- 到位
直接修改文件
--备份后缀
为就地备份时使用的后缀
--外地
将修改存储在 .cocci_res 文件中
- 逆转
在应用之前反转语义补丁
-U 设置差异上下文行的数量
--部分匹配
报告 C 文件上 SP 的部分匹配
--iso 文件
(默认=/usr/local/lib/coccinelle/standard.iso)
--宏文件
--宏文件内置
(默认=/usr/local/lib/coccinelle/standard.h)
--递归包含
导致所有可用的包含文件,包括在 C 文件中的那些和那些
包含在头文件中,以供使用
--all-包括
导致使用包含在 C 文件中的所有可用包含文件
--不包含
导致甚至不使用本地包含文件
--local-包括
导致使用本地包含文件
--ignore-unknown-选项
用于集成到工具链中(必须在第一个未知选项之前设置)
--包含标题
独立处理头文件
-I 包含头文件(可选)
--预处理
在应用语义匹配之前运行 C 预处理器
-c gcc/cpp 兼容模式
--目录 递归处理目录中的所有文件
--use-瞥见
作品 --目录, 使用由瞥见索引生成的信息
--使用谷歌
使用谷歌代码搜索找到相关文件
--使用 idutils
使用 id-utils 查找相关文件
- 修补
应该创建补丁的路径名
"" 表示当前目录中的文件
--kbuild-信息
提升 --目录 通过对相关的 c 文件进行分组
--py输出
设置输出例程: 标准值:
- 版
猜怎么着
- 日期 猜怎么着
--简短的帮助
查看选项的简短列表
--长帮助
查看不同类别中的所有可用选项
别名和过时的选项
--sp 命令行语义补丁
--iso 短选项 --iso 文件
--球菌文件
语义补丁文件
最有用的显示选项
--显示差异
--no-show-差异
--force-diffshow
diff 即使只有间距改变
--显示流程
--ctl-内联-let
--ctl-show-mcodekind
--显示绑定
--显示传输信息
--显示杂项
--展示尝试
显示正在处理的每个函数的名称
--显示依赖项
显示与每个规则相关的依赖关系
详细的子系统选项
--verbose-ctl-引擎
--详细匹配
--详细引擎
--图形跟踪
生成表示匹配过程的pdf文件
--gt-无标签
删除图形标签(需要选项 -图形跟踪)
--解析错误消息
--详细解析
--类型错误信息
其他显示选项
--显示-c
--显示球菌
--在固定流程之前显示
--显示ctl-tex
--show-ctl-文本
--显示-SP
调试 C 解析/解解析
--调试cpp
--调试词法分析器
--调试-etdt
--调试类型定义
--过滤消息
当宏是“已知”cpp 构造时过滤一些 cpp 消息
--过滤器定义错误
--过滤器消息定义错误
过滤错误消息
--过滤器通过级别
--调试-解析
同时启用/禁用一组调试选项的快捷方式
- 安静的
- 很安静
-调试
- 软垫
工作台选项
- 轮廓
收集有关主要 coccinelle 功能的时间信息
- 长椅
用于分析 CTL 引擎
- 暂停
以秒为单位的超时
- 脚步
每个代码单元的最大模型检查步骤数
--iso限制
iso应用的最大深度
--无 iso 限制
禁用对 iso 应用程序最大深度的限制
--track-iso
收集有关同构用法的信息
--禁用-iso
禁用特定的同构
--配置文件-iso
收集有关同构使用成本的信息
算法选项的改变
--保持评论
保留对已删除代码的注释
- 环形
--无循环
删除所有源自循环结构的后边缘 - 不安全
--无后顾之忧
删除所有源自 goto 的跳转 - 不安全
--没有保存的类型定义
将所有推断的 typedef 从某个代码的一个解析删除到下一个
--ocaml-正则表达式
使用 OCaml Str 正则表达式进行约束
--l1
--ifdef 到 if
将 ifdef 转换为 if(实验性)
--no-ifdef-to-if
将 ifdef 转换为 if(实验性)
--禁用多次通过
--noif0-通过
--定义
- 不明确的
--noadd-typedef-root
--禁止嵌套表达式
禁止表达式模式匹配项及其子项
--禁用值得尝试的选项
--only-return-is-error-exitif 没有设置这个标志,然后中断和继续也是错误
退出
--允许不一致的路径
如果设置了此标志,则不检查不一致的路径; 危险的
--no-safe-表达式
使表达式析取不优先考虑最上面的析取
--int 位
unsigned int 中的位数
--长位
unsigned long 中的位数
--linux-间距
+ 代码的间距遵循 Linux 的约定
--smpl-间距
+ 代码的间距遵循语义补丁
-D 指示应考虑匹配虚拟规则
- C++ 尝试解析 C++ 文件。 源文件支持的扩展名
是 .cpp、.cxx、.cc,头文件是 .h、.hpp 和 .hxx。 请注意,这
选项禁用 .c 文件的处理,因为 Coccinelle 的行为不同
C ++。
其他选项
--调试器
设置是否在 ocamldebug 中启动 spatch 的选项
--禁用一次
打印更多消息
--显示跟踪配置文件
显示痕迹
--save-tmp-文件
汇率
- 指数
用于这次 spatch 的处理器
- 最大限度 可用的处理器数量
--mod-分发
使用 mod 在处理器之间分发文件
打击垫选项
--使用缓存
使用 .ast_raw 预解析缓存 C 文件
--cache-前缀
缓存的 AST 目录,集合 --使用缓存
--缓存限制
缓存 AST 的最大数量,集合 --使用缓存
测试模式和测试选项(适用于测试/或 .OK 文件)
测试选项不适用于 --sp-文件 等等。
- 测试 在测试/文件上启动 spatch。[c,cocci]
--测试全部
在测试/具有 .res 的所有文件上启动 spatch
--test-ok失败
使用 .res 文件生成 .{ok,failed,spatch_ok} 文件
--测试回归-ok失败
处理当前目录中的 .{ok,failed,spatch_ok} 文件
--比较预期
也使用 file.res
--预期分数文件
与哪个分数文件进行比较 --测试全部
--无更新分数文件
不更新分数文件时 --测试全部 成功
--放松包含路径
动作模式
操作选项不适用于 --sp-文件 等等。 是给对方的
(内部)使用 spatch 程序。
--tokens-c
--解析-c
--解析-h
--解析ch
--解析-i
--解析
--显示流程
- 控制流
--控制流到文件
--测试-cfg-ifdef
--解析-解解析
--type-c
--比较-c
--comment-annotter-c
--compare-c-硬编码
--测试属性
--测试cpp
--extract-宏
--extract-宏-选择
--xxx <>
--解析-球菌
--比较-c
使用 onworks.net 服务在线使用 spatch
