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命令行参数一览

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