Neatbo.

编译数据库声明参数对照

对照两份 compile_commands 的完整有序 argv 与工作目录,保留来源和每条调用。

浏览器本地处理输入两份 compile_commands.json输出原始文件、完整 JSON 和 CSV单个文件最多 2 MiB · 最多 2 个
  1. 1添加输入
  2. 2调整设置
  3. 3获取结果

工具输入和文件在当前浏览器处理,不会上传。

输入内容

切换工具时在当前标签页临时保留输入。刷新或关闭后清除,较大的结果可能需要重新生成。

⌘ / Ctrl + Enter 运行

或将文件拖到这里

文件留在当前设备,原始文件不会被覆盖。

.json

单个文件最多 2 MiB · 最多 2 个

    处理选项

    先填写标记为必填的选项,其余可保留默认值。

    成对填写绝对 POSIX 根目录;只映射身份与工作目录。 每个最多 4,096 UTF-8 字节。

    成对填写绝对 POSIX 根目录;只映射身份与工作目录。 每个最多 4,096 UTF-8 字节。

    正在准备处理工具…

    开始之前

    对照两份 compile_commands 的完整有序 argv 与工作目录,保留来源和每条调用。

    如何使用

    1. 按顺序选择迁移前与迁移后的两份数据库。
    2. 需要时成对填写根目录,运行有序参数对照。
    3. 核查新增、删除和改变的调用,下载完整 JSON/CSV 与原始文件。
    4. 另行验收链接、运行行为与二进制结果。

    支持范围与限制

    选择恰好 2 份严格 UTF-8 JSON:第一份为迁移前,第二份为迁移后。每份最多 2 MiB,合计 4 MiB;原文件名标签最多 512 UTF-8 字节。可移除并记录每份唯一的开头 BOM。

    仅支持 POSIX 词法路径。directory 必须为绝对路径,file/output 相对该目录解析;不查文件系统或 realpath。beforeRoot/afterRoot 必须成对填写绝对路径,按路径组件边界映射身份和工作目录,绝不改写 argv。每个根目录选项最多 4,096 UTF-8 字节,这只是参数资源限制。

    来源路径与可选 output 构成匹配身份;重复身份拒绝整批。arguments 优先且保留完整顺序,首项必须是非空可执行程序;command 只支持固定 POSIX 单引号、双引号、反斜杠词法。

    拒绝 shell 展开、未引用的操作符或通配符、command 控制字符、Windows 路径语义、command 赋值前缀(如 FOO=1 cc)、@response 文件及未知调用元字段。采用 arguments 时,command 原文只保留为来源,不执行也不解释。

    两份文件合计最多 5,000 条调用、250,000 项 argv。JSON 容器最多 16 层,拒绝 decoded 重复键、非法 UTF-8 与未成对代理 Unicode。合法数据库结构最多 3 层,因此 16 层是保护性守卫。

    下载两份原始文件、完整 compilation-comparison.json 与 quote-all CSV;所有输出合计最多 32 MiB,失败或取消无部分输出。CSV 所有单元格加单引号防公式执行,JSON 和原始字节保留原文。

    屏幕只展示前 200 行,每格前 2,000 Unicode 码点;复制是明确标记的摘要。完整新增、删除、匹配调用及 argv 差异下标在下载中。

    相等只表示有序声明 argv 与映射后工作目录相等。不证明 flags 语义、链接、环境、头文件、编译器行为、ABI 或二进制等价。文件内容与名称留在当前浏览器。

    操作示例

    示例输入

    before: [{"directory":"/work","file":"a.c","arguments":["cc","-O0","a.c"]}]; after: same source with -O2
    示例参数
    beforeRoot=""; afterRoot=""

    示例输出

    1 changed invocation, argv index 1; 2 originals, full JSON and CSV.

    出现问题时

    纠正原始文件、消除重复身份或不支持的 shell 结构,再重新选择两份文件;取消后可直接重跑原选择。

    常见问题

    能证明迁移后二进制一致吗?

    相等只表示有序声明 argv 与映射后工作目录相等。不证明 flags 语义、链接、环境、头文件、编译器行为、ABI 或二进制等价。文件内容与名称留在当前浏览器。

    根目录映射会忽略参数中的路径差异吗?

    仅支持 POSIX 词法路径。directory 必须为绝对路径,file/output 相对该目录解析;不查文件系统或 realpath。beforeRoot/afterRoot 必须成对填写绝对路径,按路径组件边界映射身份和工作目录,绝不改写 argv。每个根目录选项最多 4,096 UTF-8 字节,这只是参数资源限制。

    相关工具