Frama-C API - Eva
Eva public API.
Apart from Analysis and Results, all modules exported here are development interfaces which may change with each Frama-C release.
Main stable API
module Analysis : sig ... endRun the analysis and check analysis status.
module Results : sig ... endMain API to access the results of an analysis, such as the possible values of expressions and memory locations of lvalues at each program point.
Statistics
module Eva_perf : sig ... endStatistics about the analysis performance.
module Statistics : sig ... endVarious statistics collected during an analysis.
Types used in Eva
module Eva_ast : sig ... endAST used by Eva.
module Position : sig ... endPosition in the analysis
module Callstack : sig ... endTypes of callstack.
module Deps : sig ... endTypes for the memory dependencies of an expression or lvalue.
Configuration of the analysis
module Parameters : sig ... endCommand-line parameters of the analysis.
module Eva_annotations : sig ... endAdd local annotations to guide the analysis.
module Builtins : sig ... endRegister OCaml builtins to be used by the cvalue domain instead of analysing the body of some C functions.
Registration of new abstractions
module Eval : sig ... endVarious types used in abstract domain signature.
module Abstract_domain : sig ... endSignature of abstract domains, inferring properties about the program during the analysis.
module Abstract_value : sig ... endSignature of abstract numerical values, representing the set of possible values of an expression or lvalue. Used to exchange information between abstract domains.
module Abstract_location : sig ... endSignature of abstract memory locations, representing the set of possible memory locations pointed to by an lvalue.
module Abstract_context : sig ... endSignature of abstract state, which can be used to transfer information from states of abstract domains to abstract values.
module Unit_context : sig ... endEmpty context.
module Domain_builder : sig ... endAutomatic builders to complete abstract domains from different simplified interfaces.
module Simpler_domains : sig ... endSimplified interfaces for abstract domains. Complete abstract domains can be built from these interfaces through the functors in Domain_builder.
module Simple_memory : sig ... endBuild a domain upon a value abstraction with a very simple memory model for scalar non-volatile variables.
module Domain : sig ... endRegister new abstract domains.
module Main_values : sig ... endCommon value abstractions shared by many abstract domains.
module Main_locations : sig ... endCommon location abstractions shared by many abstract domains.
Internal API
These modules are for internal use only. They may be modified or removed in future versions. Please contact us if you need features from these modules.
module Export : sig ... endGeneration of annotations.
module Assigns : sig ... endTypes and operations for the From plugin.
module Cvalue_callbacks : sig ... endRegister hooks called during the analysis with states of the cvalue domain.
module Logic_inout : sig ... endInterpretation of predicates and assigns clauses for Inout and From plugins.
module Eva_results : sig ... endUndocumented.
module Unit_tests : sig ... endUnit testing.
