jon.recoil.org

Module Debuginfo

module ZA = Zero_alloc_utils
module Scoped_location : sig ... end
type item = private {
  1. dinfo_file : string;
  2. dinfo_line : int;
  3. dinfo_char_start : int;
  4. dinfo_char_end : int;
  5. dinfo_start_bol : int;
  6. dinfo_end_bol : int;
  7. dinfo_end_line : int;
  8. dinfo_scopes : Scoped_location.scopes;
    (*

    See the Inlined_debuginfo module in Flambda 2 for an explanation of the uid and function symbol fields. (They are used for generation of DWARF inlined frame information.) These fields should only be set to Some by Flambda 2.

    *)
  9. dinfo_uid : string option;
  10. dinfo_function_symbol : string option;
  11. dinfo_dir : string option;
}
val item_with_uid_and_function_symbol : item -> dinfo_uid:string option -> dinfo_function_symbol:string option -> item
type t
val none : t
val is_none : t -> bool
val of_items : item list -> t
val mapi_items : t -> f:(int -> item -> item) -> t
val to_items : t -> item list
val to_string : t -> string
val from_location : Scoped_location.t -> t
val to_location : t -> Location.t
val inline : t -> from_inlined_body:t -> t
val compare : t -> t -> int
val print_compact : Format.formatter -> t -> unit
val doc_print_compact : Format_doc.formatter -> t -> unit

Like print_compact but uses Format_doc.formatter.

val print_compact_extended : Format.formatter -> t -> unit

Like print_compact but also prints uid and function symbol info.

val merge : into:t -> t -> t
val assume_zero_alloc : t -> ZA.Assume_info.t
val to_structured_mangling_path : name:string -> t -> Structured_mangling.path

to_structured_mangling_path converts the debug info into a mangling path. In all cases, the name is used to populate the last element of the path.

module Dbg : sig ... end
val get_dbg : t -> Dbg.t