Module Debug


val eprint : string -> unit
val eprints : string -> 'a -> ('a -> Sexplib.Sexp.t) -> unit
val eprint_s : Sexplib.Sexp.t -> unit
val eprintf : ('r, unit, string, unit) Pervasives.format4 -> 'r

am, 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 : Core_kernel.Std.Source_code_position.t -> string -> 'a -> ('a -> Core_kernel.Std.Sexp.t) -> unit
val amf : Core_kernel.Std.Source_code_position.t -> ('r, unit, string, unit) Core_kernel.Std.format4 -> 'r
val should_print_backtrace : bool Core_kernel.Std.ref

should_print_backtrace governs whether the am* functions print a backtrace.