Module Pulselib.PulseTrace
module CallEvent = PulseCallEvent
module ValueHistory = PulseValueHistory
type t
=
|
Immediate of
{
location : IBase.Location.t;
history : ValueHistory.t;
}
|
ViaCall of
{
f : CallEvent.t;
location : IBase.Location.t;
location of the call event
history : ValueHistory.t;
the call involves a value with this prior history
in_call : t;
last step of the trace is in a call to
f
made atlocation
}
val pp : pp_immediate:(F.formatter -> unit) -> F.formatter -> t -> unit
val get_outer_location : t -> IBase.Location.t
skip histories and go straight to the where the action is: either the action itself or the call that leads to the action
val get_start_location : t -> IBase.Location.t
initial step in the history if not empty, or else same as
get_outer_location
val add_to_errlog : ?include_value_history:bool -> nesting:int -> pp_immediate:(F.formatter -> unit) -> t -> Absint.Errlog.loc_trace_elem list -> Absint.Errlog.loc_trace_elem list
val find_map : f:(ValueHistory.event -> 'a option) -> t -> 'a option
Like
List.find_map
, but applies to value histories.