Module Slicing.Api.Project

module Project: sig .. end

Slicing project management.


val reset_slicing : unit -> unit

Function that can be used for:

Kernel function

val is_called : Cil_types.kernel_function -> bool

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

Return true iff the source function has persistent selection

val change_slicing_level : Cil_types.kernel_function -> int -> unit

Change the slicing level of this function (see the -slicing-level option documentation to know the meaning of the number).

Extraction

val default_slice_names : Cil_types.kernel_function -> bool -> int -> string

Default function used for the optional ?f_slice_names argument of extract function.

val extract : ?f_slice_names:(Cil_types.kernel_function -> bool -> int -> string) ->
string -> Project.t

Build a new Db.Project.t from all Slice.t of a project. The string argument is used for naming the new 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.

Not for casual users

val is_directly_called_internal : Cil_types.kernel_function -> bool

Return true if the source function is directly (even via pointer function) called from a Slice.t.

val print_dot : filename:string -> title:string -> unit

May be used to for debugging... Pretty print a representation of the slicing project (call graph) in a dot file which name is the given string.

val pretty : Format.formatter -> unit

May be used for debugging... Pretty print project information.