86 lines
2.9 KiB
OCaml
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
|