module Project: sig
.. end
Slicing project management.
val reset_slicing : unit -> unit
Function that can be used for:
- initializing the slicing tool before starting a slicing project;
- removing all computed slices and all internal pending requests
of the current slicing project.
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).
RaisesSlicingTypes.ExternalFunction
if kf
has no definition.
SlicingTypes.WrongSlicingLevel
if n
is not valid.
val default_slice_names : Cil_types.kernel_function -> bool -> int -> string
Default function used for the optional ?f_slice_names
argument of
extract
function.
: ?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
.
src_visi
tells if the source function name is used
(if not, it can be used for a slice)
num_slice
gives the number of the slice to name.
The entry point function is only exported once :
it is VERY recommended to give to it its original name,
even if it is sliced.
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.