ocaml/lambda/debuginfo.mli

86 lines
2.9 KiB
OCaml

(**************************************************************************)
(* *)
(* OCaml *)
(* *)
(* Xavier Leroy, projet Gallium, INRIA Rocquencourt *)
(* *)
(* Copyright 2006 Institut National de Recherche en Informatique et *)
(* en Automatique. *)
(* *)
(* All rights reserved. This file is distributed under the terms of *)
(* the GNU Lesser General Public License version 2.1, with the *)
(* special exception on linking described in the file LICENSE. *)
(* *)
(**************************************************************************)
module Scoped_location : sig
type scope_item =
| Sc_anonymous_function
| Sc_value_definition of string
| Sc_module_definition of string
| Sc_class_definition of string
| Sc_method_definition of string
type scopes = scope_item list
val string_of_scope_item : scope_item -> string
val string_of_scopes : scopes -> string
val enter_anonymous_function : scopes:scopes -> scopes
val enter_value_definition : scopes:scopes -> Ident.t -> scopes
val enter_module_definition : scopes:scopes -> Ident.t -> scopes
val enter_class_definition : scopes:scopes -> Ident.t -> scopes
val enter_method_definition : scopes:scopes -> Asttypes.label -> scopes
type t =
| Loc_unknown
| Loc_known of
{ loc : Location.t;
scopes : scopes; }
val of_location : scopes:scopes -> Location.t -> t
val to_location : t -> Location.t
val string_of_scoped_location : t -> string
end
type item = private {
dinfo_file: string;
dinfo_line: int;
dinfo_char_start: int;
dinfo_char_end: int;
dinfo_start_bol: int;
dinfo_end_bol: int;
dinfo_end_line: int;
dinfo_scopes: Scoped_location.scopes;
}
type t = item list
type alloc_dbginfo_item =
{ alloc_words : int;
alloc_dbg : t }
(** Due to Comballoc, a single Ialloc instruction may combine several
unrelated allocations. Their Debuginfo.t (which may differ) are stored
as a list of alloc_dbginfo. This list is in order of increasing memory
address, which is the reverse of the original allocation order. Later
allocations are consed to the front of this list by Comballoc. *)
type alloc_dbginfo = alloc_dbginfo_item list
val none : t
val is_none : t -> bool
val to_string : t -> string
val from_location : Scoped_location.t -> t
val to_location : t -> Location.t
val inline : t -> t -> t
val compare : t -> t -> int
val hash : t -> int
val print_compact : Format.formatter -> t -> unit