package mopsa

  1. Overview
  2. Docs
MOPSA: A Modular and Open Platform for Static Analysis using Abstract Interpretation

Install

dune-project
 Dependency

Authors

Maintainers

Sources

mopsa-analyzer-v1.2.tar.gz
md5=37966e98ffeebcedc09bd6e9b2b81f69
sha512=40d4d826c25f680766c07eccbabdf5e8a4fa023016e8a164e4e4f6b3781c8484dc4df437055721dfd19b9db8fb7fe3b61236c4833186d346fc7204a68d01eaaa

doc/mopsa.mopsa_analyzer/Mopsa_analyzer/Languages/C/Hooks/Analysis_bugs/Hook/index.html

Module Analysis_bugs.Hook

Hook header

***************

val name : string
val debug : ('a, Format.formatter, unit, unit) format4 -> 'a

Command-line options

************************

val default_whitelist : string list

Whitelist of functions that do not return

val opt_whitelist : string list ref
val mem_whitelist : string -> bool

Analyzer bugs

*****************

type bug = {
  1. bug_kind : bug_kind;
  2. bug_range : MopsaLib.range;
  3. bug_callstack : MopsaLib.callstack;
}
and bug_kind =
  1. | Exec of MopsaLib.stmt
  2. | Call of MopsaLib.expr
val compare_bug_kind : bug_kind -> bug_kind -> int

Compare two bug kinds

val compare_bug : bug -> bug -> int

Compare two bugs

val pp_bug_kind : Format.formatter -> bug_kind -> unit

Print bug kinds

val pp_bug : Format.formatter -> bug -> unit

Print a bug

module BugSet : sig ... end

Set of bugs

val bugs : BugSet.t ref
val add_exec_bug : MopsaLib.stmt -> MopsaLib.callstack -> unit

Add a bug at a statement

val add_call_bug : MopsaLib.expr -> MopsaLib.callstack -> unit

Add a bug at a function call

val remove_redundant_bugs : unit -> unit

Remove redundant bug locations

Initialization

******************

val init : 'a -> unit

Utility functions

*********************

val is_cur_bottom_in_flow : ('a, 'b) MopsaLib.man -> 'a Mopsa_analyzer.MopsaLib.Flow.flow -> bool

Check that T_cur is bottom in a flow

val is_cur_bottom_in_cases : ('a, 'b) MopsaLib.man -> ('a, 'c) Mopsa_analyzer.MopsaLib.Cases.cases -> bool

Check that T_cur is bottom in a cases set

Events handlers

*******************

val on_before_exec : 'a -> 'b -> 'c -> 'd -> unit
val on_after_exec : 'a -> MopsaLib.stmt -> ('b, 'c) MopsaLib.man -> 'b Mopsa_analyzer.MopsaLib.Flow.flow -> ('b, 'd) Mopsa_analyzer.MopsaLib.Cases.cases -> unit
val on_before_eval : 'a -> 'b -> 'c -> 'd -> 'e -> unit
val on_after_eval : 'a -> 'b -> MopsaLib.expr -> ('c, 'd) MopsaLib.man -> 'c Mopsa_analyzer.MopsaLib.Flow.flow -> ('c, 'e) Mopsa_analyzer.MopsaLib.Cases.cases -> unit
val on_finish : 'a -> 'b -> unit
OCaml

Innovation. Community. Security.