package vlt

  1. Overview
  2. Docs

Module Vlt.DaikonSource

This module provides support for the Daikon tool.

Daikon (available at http://groups.csail.mit.edu/pag/daikon/) is an invariant detector that works by analyzing the traces produced by an instrumented program.

Bolt can produce Daikon-comptabile traces by using statements like:

LOG Daikon.t WITH Daikon.point "pt" [Daikon.int "i" i];

more information can be found in the Bolt manual.

Definitions
Sourceval t : string

The identifier message for Daikon traces.

Sourcetype variable

The type of variables to be recorded in a trace.

Sourcetype properties = (string * string) list

The type of information to be recorded in a trace.

Sourcetype 'a variable_builder = string -> 'a -> variable

The type of function building variables, taking two parameters:

  • the name of the variable;
  • the value of the variable.
Variable constructors
Sourceval bool : bool variable_builder

Defines a variable from name and value.

Sourceval bool_option : bool option variable_builder

Defines a variable from name and value (translated to a Daikon array).

Sourceval bool_list : bool list variable_builder

Defines a variable from name and value (translated to a Daikon array).

Sourceval bool_array : bool array variable_builder

Defines a variable from name and value.

Defines a variable from name and value.

Sourceval int_option : int option variable_builder

Defines a variable from name and value (translated to a Daikon array).

Sourceval int_list : int list variable_builder

Defines a variable from name and value (translated to a Daikon array).

Sourceval int_array : int array variable_builder

Defines a variable from name and value.

Sourceval float : float variable_builder

Defines a variable from name and value.

Sourceval float_option : float option variable_builder

Defines a variable from name and value (translated to a Daikon array).

Sourceval float_list : float list variable_builder

Defines a variable from name and value (translated to a Daikon array).

Sourceval float_array : float array variable_builder

Defines a variable from name and value.

Sourceval string : string variable_builder

Defines a variable from name and value.

Sourceval string_option : string option variable_builder

Defines a variable from name and value (translated to a Daikon array).

Sourceval string_list : string list variable_builder

Defines a variable from name and value (translated to a Daikon array).

Sourceval string_array : string array variable_builder

Defines a variable from name and value.

Variable combinators
Sourceval make_variable_builder : ('a -> variable list) -> 'a variable_builder

Constructs a variable builder function, by projecting a given value to a list of variables.

Sourceval tuple2 : 'a variable_builder -> 'b variable_builder -> ('a * 'b) variable_builder

tuple2 t1 t2 returns a variable builder for couple of type t1 * t2.

Sourceval tuple3 : 'a variable_builder -> 'b variable_builder -> 'c variable_builder -> ('a * 'b * 'c) variable_builder

tuple3 t1 t2 t3 returns a variable builder for triple of type t1 * t2 * t3.

Sourceval tuple4 : 'a variable_builder -> 'b variable_builder -> 'c variable_builder -> 'd variable_builder -> ('a * 'b * 'c * 'd) variable_builder

tuple4 t1 t2 t3 t4 returns a variable builder for quadruple of type t1 * t2 * t3 * t4.

Sourceval tuple5 : 'a variable_builder -> 'b variable_builder -> 'c variable_builder -> 'd variable_builder -> 'e variable_builder -> ('a * 'b * 'c * 'd * 'e) variable_builder

tuple5 t1 t2 t3 t4 t5 returns a variable builder for quintuple of type t1 * t2 * t3 * t4 * t5.

Properties constructors
Sourceval point : string -> variable list -> properties

point id vars defines the properties for a given point in code, id being the identifier for the point and vars the variable list.

Sourceval enter : string -> variable list -> properties

enter id pars Defines the properties for a entry point in code (typically function begin), id being the identifier for the function and pars the parameter list.

Sourceval exit : string -> variable -> variable list -> properties

exit id ret pars Defines the properties for a exit point in code (typically function end), id being the identifier for the function, ret the returned value and pars the parameter list.

Layout elements
Sourceval decls_header : string list

The header defining Daikon events (declaration part).

Sourceval decls_render : Event.t -> string

The rendering function for Daikon format (declaration part).

Sourceval dtrace_header : string list

The header defining Daikon events (trace part).

Sourceval dtrace_render : Event.t -> string

The rendering function for Daikon format (trace part).

Sourceval layout_decls : Layout.t

The layout supporting the "Daikon" format (declaration part).

Sourceval layout_dtrace : Layout.t

The layout supporting the "Daikon" format (trace part).

OCaml

Innovation. Community. Security.