Module Db.Slicing.Project

module Project: sig .. end
Slicing project management.

val reset_slice : (unit -> unit) Pervasives.ref

Kernel function


val is_called : (Cil_types.kernel_function -> bool) Pervasives.ref
Return true iff the source function is called (even indirectly via transitivity) from a Slice.t.
val has_persistent_selection : (Cil_types.kernel_function -> bool) Pervasives.ref
return true iff the source function has persistent selection
val change_slicing_level : (Cil_types.kernel_function -> int -> unit) Pervasives.ref
change the slicing level of this function (see the -slicing-level option documentation to know the meaning of the number)
Raises

Extraction


val default_slice_names : (Cil_types.kernel_function -> bool -> int -> string) Pervasives.ref
val extract : (string ->
?f_slice_names:(Cil_types.kernel_function -> bool -> int -> string) ->
unit -> Project.t)
Pervasives.ref
Build a new Db.Project.t from all Slice.t of a project. Can optionally specify how to name the sliced functions by defining f_slice_names. f_slice_names kf src_visi num_slice has to return the name of the exported functions based on the source function kf.
val print_extracted_project : (?fmt:Format.formatter -> extracted_prj:Project.t -> unit) Pervasives.ref
Print the extracted project when "-slice-print" is set.
val print_dot : (filename:string -> title:string -> unit) Pervasives.ref
Print a representation of the slicing project (call graph) in a dot file which name is the given string.

Internal use only


val pretty : (Format.formatter -> unit) Pervasives.ref
For debugging... Pretty print project information.
val is_directly_called_internal : (Cil_types.kernel_function -> bool) Pervasives.ref
Return true if the source function is directly (even via pointer function) called from a Slice.t.