Module type Minidebug_runtime.Debug_runtime

When using the ppx_minidebug syntax extension, provide a module called Debug_runtime with this signature in scope of the instrumented code.

val close_log : fname:string -> start_lnum:int -> entry_id:int -> unit
val open_log : fname:string -> start_lnum:int -> start_colnum:int -> end_lnum:int -> end_colnum:int -> message:string -> entry_id:int -> log_level:int -> [ `Diagn | `Debug | `Track ] -> unit
val open_log_no_source : message:string -> entry_id:int -> log_level:int -> [ `Diagn | `Debug | `Track ] -> unit
val log_value_sexp : ?descr:string -> entry_id:int -> log_level:int -> is_result:bool -> Sexplib0.Sexp.t -> unit
val log_value_pp : ?descr:string -> entry_id:int -> log_level:int -> pp:(Stdlib.Format.formatter -> 'a -> unit) -> is_result:bool -> 'a -> unit
val log_value_show : ?descr:string -> entry_id:int -> log_level:int -> is_result:bool -> string -> unit
val log_value_printbox : entry_id:int -> log_level:int -> PrintBox.t -> unit
val exceeds_max_nesting : unit -> bool
val exceeds_max_children : unit -> bool
val get_entry_id : unit -> int
val max_nesting_depth : int option Stdlib.ref
val max_num_children : int option Stdlib.ref
val global_prefix : string
val snapshot : unit -> unit

For PrintBox runtimes, outputs the current logging stack to the logging channel. If the logging channel supports that, an output following a snapshot will rewind the channel to the state prior to the snapshot. Does nothing for the Flushing runtimes.

val finish_and_cleanup : unit -> unit

Snapshots any pending logs and closes any open files. This should be called at the end of the program to ensure all logs are properly flushed and files are closed. Do not call this function if there is a chance that the backend will be used again.

val no_debug_if : bool -> unit

For PrintBox runtimes, when passed true within the scope of a log subtree, disables the logging of this subtree and its subtrees. Does not do anything when passed false (no_debug_if false does not re-enable the log). Does nothing for the Flushing runtimes.

val log_level : int Stdlib.ref

The runtime log level.

The log levels are used both at compile time, and for the PrintBox runtime. Not logging at compile time means the corresponding logging code is not generated; not logging at runtime means the logging state is not updated.