Frama-C:
Plug-ins:
Libraries:

Frama-C API - Uses

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 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)