Core.DebugUtilities for printing debug messages.
val eprint : Base.String.t -> Base.Unit.t @@ portableeprint message prints to stderr message, followed by a newline and flush. This is the same as prerr_endline.
val eprints : Base.String.t -> 'a -> ('a -> Sexp.t) -> Base.Unit.t @@ portableeprints message a sexp_of_a prints to stderr message and a as a sexp, followed by a newline and flush.
val eprint_s : Sexp.t -> Base.Unit.t @@ portableeprint_s sexp prints sexp to stderr, followed by a newline and a flush.
val eprintf :
('r, Base.Unit.t, Base.String.t, Base.Unit.t) format4 ->
'r @@ portableeprintf message arg1 ... argn prints to stderr message, with sprintf-style format characters instantiated, followed by a newline and flush.
module Make () : sig ... endDebug.Make produces a debug function used to wrap a function to display arguments before calling and display results after returning. Intended usage is:
val am : Source_code_position.t -> Base.Unit.t @@ portableam, ams, and amf output a source code position and backtrace to stderr. amf accepts a printf-style format string. ams accepts a message, value, and sexp converter for that value. Typical usage looks like:
...;
Debug.am [%here];
...;
Debug.amf [%here] "hello (%s, %s)" (X.to_string x) (Y.to_string y);
...;
Debug.ams [%here] "hello" (x, y) [%sexp_of: X.t * Y.t];
...;The am* functions output source code positions in the standard format "FILE:LINE:COL", which means that one can use a tool like emacs grep-mode on a buffer containing debug messages to step through one's code by stepping through the messages.
val ams :
Source_code_position.t ->
Base.String.t ->
'a ->
('a -> Sexp.t) ->
Base.Unit.t @@ portableval amf :
Source_code_position.t ->
('r, Base.Unit.t, Base.String.t, Base.Unit.t) format4 ->
'r @@ portableval should_print_backtrace : Base.Bool.t Atomic.t @@ portableshould_print_backtrace governs whether the am* functions print a backtrace.