Module Pulselib.PulseTrace
module CallEvent = PulseCallEventmodule Invalidation = PulseInvalidationmodule ValueHistory = PulseValueHistorytype 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
fmade atlocation}
val pp : pp_immediate:(F.formatter -> unit) -> F.formatter -> t -> unitval get_outer_location : t -> IBase.Location.tskip 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.tinitial 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 listval find_map : t -> f:(ValueHistory.event -> 'a option) -> 'a optionfind_mapapplied to history events
val get_invalidation : t -> Invalidation.t optionreturn the first invalidation event of the trace, if any
val has_invalidation : t -> boolwhether the trace contains an invalidation event
val trace_up_to_key_event : is_key_event:(ValueHistory.event -> bool) -> ValueHistory.t -> t optionturns a history containing a "key event" into a trace leading to the most recent such event