Eva.CallstackSourceA call is identified by the function called and the call statement
module Call : Frama_c_kernel.Datatype.S with type t = calltype callstack = {thread : int;entry_point : Frama_c_kernel.Cil_types.kernel_function;The first function function of the callstack.
*)stack : call list;A call stack is a list of calls. The head is the latest call.
*)}Eva callstacks.
include Frama_c_kernel.Datatype.S_with_collections with type t = callstackinclude Frama_c_kernel.Datatype.S with type t = callstackinclude Frama_c_kernel.Datatype.S_no_copy with type t = callstackinclude Frama_c_kernel.Datatype.Ty with type t = callstacktype t = callstackval ty : t Frama_c_kernel.Type.tval descr : t Frama_c_kernel.Descr.tDatatype descriptor.
val packed_descr : Frama_c_kernel.Structural_descr.packPacked version of the descriptor.
val reprs : t listList of representants of the descriptor.
val hash : t -> intHash function: same spec than Hashtbl.hash.
val pretty : Format.formatter -> t -> unitPretty print each value in an user-friendly way.
val mem_project : (Frama_c_kernel.Project_skeleton.t -> bool) -> t -> boolmem_project f x must return true iff there is a value p of type Project.t in x such that f p returns true.
module Set : Frama_c_kernel.Datatype.Set with type elt = tmodule Map : Frama_c_kernel.Datatype.Map with type key = tmodule Hashtbl : Frama_c_kernel.Datatype.Hashtbl with type key = tval pretty_short : Format.formatter -> t -> unitPrints a callstack without displaying call sites.
val pretty_hash : Format.formatter -> t -> unitPrints a hash of the callstack when '-kernel-msg-key callstack' is enabled (prints nothing otherwise).
compare_lex compares callstack lexicographically, slightly slower than compare but in a more natural order, giving more importance to the function at bottom of the callstack - the first functions called.
val init : ?thread:int -> Frama_c_kernel.Cil_types.kernel_function -> tval push :
Frama_c_kernel.Cil_types.kernel_function ->
Frama_c_kernel.Cil_types.stmt ->
t ->
tAdds a new call to the top of the callstack.
val top :
t ->
(Frama_c_kernel.Cil_types.kernel_function * Frama_c_kernel.Cil_types.stmt)
optionval top_kf : t -> Frama_c_kernel.Cil_types.kernel_functionval top_callsite : t -> Frama_c_kernel.Cil_types.kinstrval top_call :
t ->
Frama_c_kernel.Cil_types.kernel_function * Frama_c_kernel.Cil_types.kinstrval top_caller : t -> Frama_c_kernel.Cil_types.kernel_function optionReturns the function that called the topmost function of the callstack.
val to_kf_list : t -> Frama_c_kernel.Cil_types.kernel_function listGives the list of kf in the callstack from the entry point to the top of the callstack (i.e. reverse order of the call stack).
val to_stmt_list : t -> Frama_c_kernel.Cil_types.stmt listGives the list of call statements from the bottom to the top of the callstack (i.e. reverse order of the call stack).
val to_call_list :
t ->
(Frama_c_kernel.Cil_types.kernel_function * Frama_c_kernel.Cil_types.kinstr)
listGives the list of call from the bottom to the top of the callstack (i.e. reverse order of the call stack).