package ppx_minidebug

  1. Overview
  2. Docs

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 description : string

A description that should be sufficient to locate where the logs end up. If not configured explicitly, it will be some combination of: the global prefix, the file name or "stdout".

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.

OCaml

Innovation. Community. Security.