KLEE命令行参数一览

作者: owhereg | 来源:发表于2016-01-26 10:04 被阅读0次
  • 文献标题Overview of KLEE’s main command-line options
  • 文献作者The KLEE Team.
  • 文献来源http://klee.github.io/docs/options/
  • 阅读日期2015年12月24日09时许
  • 阅读程度速读

启发式搜索

  • KLEE提供四种启发式搜索模式:

    1. Depth-First Search (DFS): 深度优先.
    2. Random State Search:随机状态选择.
    3. Random Path Selection: 随机路径选择(见KLEE OSDI’08).
    4. Non Uniform Random Search (NURS):根据所给分发,随机选择状态。分发可基于到未覆盖指令的最小距离(MD2U),查询代价等
  • 选择搜索模式的参数是--search,例如
    $ klee --search=dfs demo.o
    $ klee --search=random-path demo.o

  • search的参数列表为:

    $ klee --help
    -search - Specify the search heuristic (default=random-path interleaved with nurs:covnew)
      =dfs - use Depth First Search (DFS)
      =random-state - randomly select a state to explore
      =random-path - use Random Path Selection (see OSDI'08 paper)
      =nurs:covnew - use Non Uniform Random Search (NURS) with Coverage-New heuristic
      =nurs:md2u - use NURS with Min-Dist-to-Uncovered heuristic
      =nurs:depth - use NURS with 2^depth heuristic
      =nurs:icnt - use NURS with Instr-Count heuristic
      =nurs:cpicnt - use NURS with CallPath-Instr-Count heuristic
      =nurs:qc - use NURS with Query-Cost heuristic
    
  • 交错式启发式搜索

    在KLEE中可以循环使用交错的启发式搜索。例如
    $ klee --search=random-state --search=nurs:md2u demo.o

  • KLEE中默认的搜索模式

    random-path 和 nurs:covnew.的交错模式。

查询记录

为了记录KLEE进行符号执行的查询过程,可以使用下列参数:

  • --use-query-log=TYPE:FORMAT

    TYPE:记录的内容

    • all:记录KLEE在没有优化前的所有查询。

    • solver: 只记录传递给KLEE求解器的查询。注意,一些未优化的查询可能在被KLEE执行前没有执行或修改。

    FORMAT:记录的格式

    • pc,KQuery格式
    • smt2,SMT-LIBv2格式。
  • --min-query-time-to-log=TIME (毫秒)

    用于记录超过一定时间限制的查询。

    TIME:毫秒计

    • 等于0时: (默认): 记录所有
    • 小于0时: TIME为负数时,只记录超时的查询,超时值由参数--max-solver-time描述。
    • 大于0时: only queries that took more that TIME milliseconds should be logged.(看不明白 ( ╯□╰ ))

入口点

修改入口点的参数为-entry-point=FUNCTION_NAME, * FUNCTION_NAME*指用作执行入口的函数名。

调用klee-assume

在缺省情况下,当假定的condition不合理时,KLEE会报告一个错误,而使用参数-silent-klee-assume,则可以在此类情况下,悄然结束当前路径的探测。

相关文章

  • KLEE命令行参数一览

    文献标题: Overview of KLEE’s main command-line options 文献作者:...

  • 九、处理用户输入

    简单目录 1.命令行参数 2.处理命令行选项和命令行参数参数 3.read命令获取用户输入 1.命令行参数 在命令...

  • 常用的npm包

    命令行参数处理 nodejs 脚本,命令行参数处理,接受参数parse 可以使用 minimist 参数提示 co...

  • 特殊变量列表

    特殊变量列表 命令行参数 运行脚本时传递给脚本的参数称为命令行参数。命令行参数用 $n 表示,例如,$1 表示第一...

  • Java 命令行参数解析类库

    命令行参数解析类库1命令行参数解析类库2命令行参数解析类库3 JArgsJakarta Commons CLITE...

  • pflag命令行参数

    简介 本文讲解如何在go程序中使用命令行参数包pflag来获取gong语言编写的命令行程序的传入参数。 命令行参数...

  • 第14章:处理用户输入

    [TOC] #1. 命令行参数 向shell脚本传递数据的最基本方法是使用命令行参数。命令行参数允许在运行脚本时向...

  • flag

    编写命令行程序时会使用不同的启动参数(命令行参数)来控制程序的行为 Go编写命令行程序时,获取并解析命令行参数的方...

  • 2.2.7 shell位置参数与特殊变量

    命令行参数

  • shell环境变量一览

    变量说明*含有所有命令行参数(以单个文本值的形式)@含有所有命令行参数(以多个文本值的形式)#命令行参数数目?最近...

网友评论

    本文标题:KLEE命令行参数一览

    本文链接:https://www.haomeiwen.com/subject/gurdkttx.html