Module Debug_protocol.Module

type t = {
id : Int_or_string.t;

Unique identifier for the module.

name : string;

A name of the module.

path : string option;

optional but recommended attributes. always try to use these first before introducing additional attributes.

Logical full path to the module. The exact definition is implementation defined, but usually this would be a full path to the on-disk file for the module.

is_optimized : bool option;

True if the module is optimized.

is_user_code : bool option;

True if the module is considered 'user code' by a debugger that supports 'Just My Code'.

version : string option;

Version of Module.

symbol_status : string option;

User understandable description of if symbols were found for the module (ex: 'Symbols Loaded', 'Symbols not found', etc.

symbol_file_path : string option;

Logical full path to the symbol file. The exact definition is implementation defined.

date_time_stamp : string option;

Module created or modified.

address_range : string option;

Address range covered by this module.

}

A Module object represents a row in the modules view. Two attributes are mandatory: an id identifies a module in the modules view and is used in a ModuleEvent for identifying a module for adding, updating or deleting. The name is used to minimally render the module in the UI.

Additional attributes can be added to the module. They will show up in the module View if they have a corresponding ColumnDescriptor.

To avoid an unnecessary proliferation of additional attributes with similar semantics but different names we recommend to re-use attributes from the 'recommended' list below first, and only introduce new attributes if nothing appropriate could be found.

val make : id:Int_or_string.t -> name:string -> ?⁠path:string option -> ?⁠is_optimized:bool option -> ?⁠is_user_code:bool option -> ?⁠version:string option -> ?⁠symbol_status:string option -> ?⁠symbol_file_path:string option -> ?⁠date_time_stamp:string option -> ?⁠address_range:string option -> unit -> t
val to_yojson : t -> Yojson.Safe.t
val of_yojson : Yojson.Safe.t -> t Ppx_deriving_yojson_runtime.error_or