package frama-c

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

Several useful functions over the callgraph

val iter_in_order : (Frama_c_kernel.Kernel_function.t -> unit) -> unit

Iterate over all the functions, in the callgraph order, i.e. from callers to callees. In case of cycles (mutual recursive functions), the order is unspecified.

val iter_in_rev_order : (Frama_c_kernel.Kernel_function.t -> unit) -> unit

Iterate over all the functions, in the callgraph reverse order, i.e. from callees to callers. In case of cycles (mutual recursive functions), the order is unspecified.

val iter_on_callers : (Frama_c_kernel.Kernel_function.t -> unit) -> Frama_c_kernel.Kernel_function.t -> unit

Iterate over all the callers of a given function in a (reverse) depth-first way. Do nothing if the function is not in the callgraph.

val iter_on_callees : (Frama_c_kernel.Kernel_function.t -> unit) -> Frama_c_kernel.Kernel_function.t -> unit

Iterate over all the callees of a given function in a (reverse) depth-first way. Do nothing if the function is not in the callgraph.

val accept_base : with_formals:bool -> with_locals:bool -> Frama_c_kernel.Kernel_function.t -> Frama_c_kernel.Base.t -> bool

accept_base formals locals kf b returns true if and only if b is

  • a global
  • a formal or local of one of the callers of kf
  • a formal or local of kf and the corresponding argument is true.
val nb_calls : unit -> int
  • returns

    the number of function calls in the whole callgraph. It is not (necessarily) equal to the number of graph edges (depending on the underlying graph datastructure)

OCaml

Innovation. Community. Security.