Module Absint.AnalysisCallbacks
Analysis API
val get_proc_desc : IR.Procname.t -> IR.Procdesc.t option
set to
Ondemand.get_proc_desc
val html_debug_new_node_session : ?kind:[ `ComputePre | `ExecNode | `ExecNodeNarrowing | `WTO ] -> pp_name:(Stdlib.Format.formatter -> unit) -> IR.Procdesc.Node.t -> f:(unit -> 'a) -> 'a
set to
NodePrinter.with_session
val proc_resolve_attributes : IR.Procname.t -> IR.ProcAttributes.t option
set to
Summary.OnDisk.proc_resolve_attributes
Callbacks management
type callbacks
=
{
get_proc_desc_f : IR.Procname.t -> IR.Procdesc.t option;
html_debug_new_node_session_f : a. ?kind:[ `ComputePre | `ExecNode | `ExecNodeNarrowing | `WTO ] -> pp_name:(Stdlib.Format.formatter -> unit) -> IR.Procdesc.Node.t -> f:(unit -> 'a) -> 'a;
proc_resolve_attributes_f : IR.Procname.t -> IR.ProcAttributes.t option;
}
These callbacks are used to break the dependency cycles between some modules. Specifically, we put here functions needed for the analysis that depend on modules higher up the dependency graph than this library but whose type does not.
val set_callbacks : callbacks -> unit
make sure this is called before starting any actual analysis