package bap-std

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Subinstruction Sequence Number.

A subinstruction sequence number plays the role of an address for sub-instruction (which otherwise share the same physical address).

Each subinstruction is having a unique address across the whole program (not only unique across to other subinstructions of the same instruction) and much like Theory.Label.for_addr it is possible to get a label that corresponds to an instruction with the given sequence number using Seqnum.label.

The sequence number is represented with an integer to enable address arithemetics. A subinstruction that follows a subinstruction with the sequence number N has the sequence number N+1.

  • since 2.4.0
type t = int
val label : ?package:string -> t -> Bap_core_theory.Theory.Label.t Bap_core_theory.KB.t

label seqnum returns the program label that corresponds to seqnum.

val slot : (Bap_core_theory.Theory.program, t option) Bap_core_theory.KB.slot

slot for accessing the sequence number of a subinstruction.

val fresh : tid Bap_knowledge.knowledge

fresh evaluates to a freshly generated sequence number.

  • since 2.5.0
OCaml

Innovation. Community. Security.