Module Printexc.Slot

module Slot: sig .. end

type t = Printexc.backtrace_slot 
val is_raise : t -> bool

is_raise slot is true when slot refers to a raising point in the code, and false when it comes from a simple function call.

val is_inline : t -> bool

is_inline slot is true when slot refers to a call that got inlined by the compiler, and false when it comes from any other context.

val ___location : t -> Printexc.___location option

___location slot returns the ___location information of the slot, if available, and None otherwise.

Some possible reasons for failing to return a ___location are as follow:

  • the slot corresponds to a compiler-inserted raise
  • the slot corresponds to a part of the program that has not been compiled with debug information (-g)
val name : t -> string option

name slot returns the name of the function or definition enclosing the ___location referred to by the slot.

name slot returns None if the name is unavailable, which may happen for the same reasons as ___location returning None.

val format : int -> t -> string option

format pos slot returns the string representation of slot as raw_backtrace_to_string would format it, assuming it is the pos-th element of the backtrace: the 0-th element is pretty-printed differently than the others.

Whole-backtrace printing functions also skip some uninformative slots; in that case, format pos slot returns None.