2 个版本

0.1.1 2021年4月27日
0.1.0 2021年4月13日

#86#binaries

BSD-3-Clause

12KB
122

ktest-parser

包 包 ktest-parser 是一个工具,用于解析 KLEE 的输出 .ktest 二进制文件,将其转换为 Rust 友好的结构体。

KTest 文件格式描述

KTest 二进制文件结构如下,

  1. 头部
  2. KLEE 参数
  3. 符号参数
  4. KTest 对象。

以下部分将详细描述结构。每个新部分从字节 0 开始,但它们依次排列。例如,参数部分从字节 8 开始,这是头部部分结束的地方。但这样描述结构更简单。

头部

头部描述了魔术数字,它可以是 "KTEST" 或 "BOUT/n"。然后是文件格式的版本。

BYTE NAME DESCRIPTION LENGTH
0..5 HDR 文件格式(默认:KTEST) 4 字节
5..8 VERSION 文件格式版本 4 字节

参数

参数部分描述了参数数量,然后是参数的重复部分,其中每个参数首先由大小描述,然后是长度大小的内容。

信息

BYTE NAME DESCRIPTION LENGTH
0..4 NUMARGS 参数数量 4 字节

参数

这会重复 (NUMARGS) 次。

BYTE NAME DESCRIPTION LENGTH
0..4 SIZE 参数大小 4 字节
4..(4+SIZE) ARG 一个参数 (SIZE) 字节

符号参数

描述符号参数。

BYTE NAME DESCRIPTION LENGTH
0..4 ARGVS 4 字节
4..8 ARGVLEN 4 字节

对象

与参数部分类似,第一项是对象的数量。然后是对象的重复部分,其中每个对象首先由大小描述,然后是长度大小的内容。

信息

BYTE NAME DESCRIPTION LENGTH
0..4 NUMOBJECTS 对象数量 4 字节

对象

这会重复 (NUMOBJECTS) 次。

BYTE NAME DESCRIPTION LENGTH
0..4 SIZE 对象大小 4 字节
4..(4+SIZE) OBJECT 一个对象 (SIZE) 字节

许可证

许可证下 BSD-3。见 LICENSE

贡献

欢迎提出问题和拉取请求!请参阅 CONTRIBUTING.md

依赖

~3.5MB
~71K SLoC