Frama-C API - Eva
module Abstract : sig ... endInternal and External signature of abstractions used in the Eva engine.
module Abstract_context : sig ... endAn abstract context can be used to transfer information from the state of an abstract domain, in which an expression or lvalue is evaluated, to a value abstraction, which interprets operations during this evaluation. The context is built by the function build_context of abstract domains, and passed as argument of most transfer functions from Abstract_value.
module Abstract_domain : sig ... endAbstract domains of the analysis.
module Abstract_location : sig ... endAbstract memory locations of the analysis.
module Abstract_memory : sig ... endmodule Abstract_offset : sig ... endmodule Abstract_structure : sig ... endmodule Abstract_value : sig ... endAbstract numeric values of the analysis.
module Abstractions : sig ... endmodule Active_behaviors : sig ... endmodule Alarmset : sig ... endMap from alarms to status. Returned by the abstract semantics to report the possible undefined behaviors.
module Analysis : sig ... endmodule Analysis_requests : sig ... endmodule Assigns : sig ... endDatastructures and common operations for the results of the From plugin.
module Ast_requests : sig ... endRequests registered to the Frama-C server; nothing is exported.
module Auto_loop_unroll : sig ... endHeuristic for automatic loop unrolling.
module Backward_formals : sig ... endFunctions related to the backward propagation of the value of formals at the end of a call. When possible, this value is propagated to the actual parameter.
module Builtins : sig ... endEva analysis builtins for the cvalue domain, more efficient than their equivalent in C.
module Builtins_float : sig ... endBuiltins for standard floating-point functions.
module Builtins_malloc : sig ... endDynamic allocation related builtins. Most functionality is exported as builtins.
module Builtins_memory : sig ... endNothing is exported, all the builtins are registered through Builtins.register_builtin
module Builtins_misc : sig ... endBuiltins for normalization and dumping of values or state. Builtins are registered directly, and are not exported here.
module Builtins_split : sig ... endmodule Builtins_string : sig ... endmodule Builtins_watchpoint : sig ... endmodule Callstack : sig ... endmodule Compute_functions : sig ... endValue analysis of entire functions, using Eva engine.
module Concurrency : sig ... endmodule Context_product : sig ... endCartesian product of two context abstractions.
module Cvalue_backward : sig ... endAbstract reductions on Cvalue.V.t
module Cvalue_callbacks : sig ... endRegister actions to performed during the Eva analysis, with access to the states of the cvalue domain. This API is for internal use only, and may be modified or removed in a future version. Please contact us if you need to register callbacks to be executed during an Eva analysis.
module Cvalue_domain : sig ... endMain domain of the Value Analysis.
module Cvalue_forward : sig ... endForward operations on Cvalue.V.t
module Cvalue_init : sig ... endmodule Cvalue_offsetmap : sig ... endAuxiliary functions on cvalue offsetmaps, used by the cvalue domain.
module Cvalue_queries : sig ... endmodule Cvalue_results : sig ... endmodule Cvalue_transfer : sig ... endTransfer functions for the main domain of the Value analysis.
module Deps : sig ... endmodule Domain_builder : sig ... endAutomatic builders to complete abstract domains from different simplified interfaces.
module Domain_lift : sig ... endmodule Domain_mode : sig ... endThis module defines the mode to restrict an abstract domain on specific functions.
module Domain_product : sig ... endmodule Domain_store : sig ... endmodule Engine : sig ... endmodule Engine_abstractions_sig : sig ... endSignature of abstractions used in the Eva engine.
module Engine_sig : sig ... endmodule Equality : sig ... endEqualities between syntactic lvalues and expressions.
module Equality_domain : sig ... endmodule Eva_annotations : sig ... endRegister special annotations to locally guide the Eva analysis:
module Eva_ast : sig ... endEva Syntax Tree.
module Eva_ast_builder : sig ... endmodule Eva_ast_datatype : sig ... endmodule Eva_ast_deps : sig ... endDependencies of expressions and lvalues.
module Eva_ast_printer : sig ... endmodule Eva_ast_types : sig ... endTypes definition of the Eva AST for lvalues and expressions. Should also include ACSL terms and predicates in the future. Most types are similar to Cil_types.
module Eva_ast_typing : sig ... endmodule Eva_ast_utils : sig ... endUtilitary functions on the Eva AST of lvalues and expressions.
module Eva_ast_visitor : sig ... endRewriting visitor
module Eva_audit : sig ... endmodule Eva_automata : sig ... endEva automata are Interpreted_automata where transitions have been translated to the Eva AST and where useless transitions have been replaced by Skip. As such, it essentially differs by its simpler vertex, edge and transitions types.
module Eva_dynamic : sig ... endAccess to other plugins API via Dynamic.get.
module Eva_perf : sig ... endmodule Eva_results : sig ... endmodule Eva_utils : sig ... endmodule Eval : sig ... endmodule Eval_annots : sig ... endmodule Eval_op : sig ... endNumeric evaluation. Factored with evaluation in the logic.
module Eval_terms : sig ... endEvaluation of terms and predicates
module Eval_typ : sig ... endFunctions related to type conversions
module Evaluation : sig ... endmodule Evaluation_sig : sig ... endGeneric evaluation and reduction of expressions and left values.
module Export : sig ... endmodule Field_interval : sig ... endmodule Function_calls : sig ... endmodule Gauges_domain : sig ... endGauges domain ("Arnaud Venet: The Gauge Domain: Scalable Analysis of Linear Inequality Invariants. CAV 2012")
module Hcexprs : sig ... endHash-consed expressions and lvalues.
module IEEE754 : sig ... endThe goal of this module is to provide a way to build a sound overapproximation of the semantics of IEEE-754 correctly rounded operations for floating-point formats supported by the C language.
module IEEE754_sig : sig ... endThis module provides the type definitions and module signatures used by the IEEE754 module to build an abstract semantics of floating-point computations as defined by the IEEE-754 standard. See this module for more information.
module Initialization : sig ... endCreation of the initial state of abstract domain.
module Inout_access : sig ... endRead and written memory zones at some given Position.t point.
module Inout_domain : sig ... endComputation of inputs of outputs.
module Interferences : sig ... endmodule Iterator : sig ... endmodule Library_functions : sig ... endmodule Locals_scoping : sig ... endAuxiliary functions to mark invalid (more precisely 'escaping') the references to a variable whose scope ends.
module Location_lift : sig ... endmodule Locations_product : sig ... endmodule Logic_inout : sig ... endFunctions used by the Inout and From plugins to interpret predicate and assigns clauses. This API may change according to these plugins development.
module Main_locations : sig ... endMain memory locations of Eva that can be used by abstract domains.
module Main_values : sig ... endMain numeric values of Eva that can be used by abstract domains.
module Mem_exec : sig ... endmodule Mqueue : sig ... endmodule Mt_domain : sig ... endmodule Mt_mutex : sig ... endmodule Mt_register : sig ... endmodule Mt_thread : sig ... endmodule Mt_utils : sig ... endmodule Multidim : sig ... endmodule Multidim_domain : sig ... endmodule Mutex : sig ... endmodule Octagons : sig ... endmodule Offsm_domain : sig ... endmodule Offsm_value : sig ... endmodule Parameters : sig ... endmodule Partition : sig ... endA partition is a collection of states, each identified by a unique key. The keys define the states partition: states with identical keys are joined together, while states with different keys are maintained separate. A key contains the reason for which a state must be kept separate from others, or joined with similar states.
module Partitioning_index : sig ... endA partitioning index is a collection of states optimized to determine if a new state is included in one of the states it contains — in a more efficient way than to test the inclusion with all stored states. Such an index is used to keep track of all the states already propagated through a control point, and to rule out new incoming states included in previous ones.
module Partitioning_parameters : sig ... endmodule Per_stmt_slevel : sig ... endFine-tuning for slevel, according to //@ slevel directives.
module Position : sig ... endDescription of the current position of the analysis.
module Pretty_memory : sig ... endmodule Printer_domain : sig ... endmodule Private : sig ... endFor internal use only: optional domains (numerors and apron) are compiled separately from the Eva core. This is used to give them access to the internal modules of Eva they need.
module Recursion : sig ... endHandling of recursion cycles in the callgraph
module Red_statuses : sig ... endThis modules stores the alarms and properties for which a red status has been emitted.
module Results : sig ... endEva's result API is a new interface to access the results of an analysis, once it is completed. It may slightly change in the future.
module Segmentation : sig ... endmodule Self : sig ... endmodule Sign_domain : sig ... endAbstraction of the sign of integer variables.
module Sign_value : sig ... endSign domain: abstraction of integer numerical values by their signs.
module Simple_memory : sig ... endSimple memory abstraction for scalar non-volatile variables, built upon a value abstraction. Basically a map from variable to values.
module Simpler_domains : sig ... endSimplified interfaces for abstract domains. Complete abstract domains can be built from these interfaces through the functors in Domain_builder. More documentation can be found on the complete interface of abstract domains, in Abstract_domain.
module Split_return : sig ... endThis module is used to merge together the final states of a function according to a given strategy. Default is to merge all states together
module Split_strategy : sig ... endmodule Statistics : sig ... endmodule Stats_requests : sig ... endRequests registered to the Frama-C server; nothing is exported.
module Structure : sig ... endGadt describing the structure of a tree of different data types, and providing fast accessors of its nodes. The leaves must provide a key from a Key module, see key.mli for details.
module Subdivided_evaluation : sig ... endSubdivision of the evaluation on non-linear expressions: for expressions in which some l-values appear multiple times, proceed by disjunction on their abstract value, in order to gain precision.
module Summary : sig ... endmodule Symbolic_locs : sig ... endDomain that store information on non-precise l-values such as t[i] or *p when i or p is not exact.
module Taint_domain : sig ... endDomain for a taint analysis.
module Taint_requests : sig ... endmodule Thread : sig ... endmodule Trace_partitioning : sig ... endmodule Traces_domain : sig ... endmodule Transfer_inout : sig ... endHelper module to register read and written memory zones to Inout_access in Transfer_stmt and Transfer_specification
module Transfer_logic : sig ... endmodule Transfer_specification : sig ... endInterpretation of function specification.
module Transfer_stmt : sig ... endmodule Typed_memory : sig ... endmodule Unit_context : sig ... endmodule Unit_domain : sig ... endmodule Unit_tests : sig ... endCurrently tested by this module:
module Value_lift : sig ... endmodule Value_product : sig ... endCartesian product of two value abstractions.
module Value_requests : sig ... endRequests registered to the Frama-C server; nothing is exported.
module Widen : sig ... endPer-function computation of widening hints.
module Widen_hints_ext : sig ... endSyntax extension for widening hints, used by Value.
