📄 trace-cml-sig.sml
字号:
(* trace-cml-sig.sml * * COPYRIGHT (c) 1992 AT&T Bell Laboratories * * This module provides rudimentary debugging support in the form of mechanisms * to control debugging output, and to monitor thread termination. This * version of this module is adapted from Cliff Krumvieda's utility for tracing * CML programs. It provides three facilities: trace modules, for controlling * debugging output; thread watching, for detecting thread termination; and * a mechanism for reporting uncaught exceptions on a per thread basis. *)signature TRACE_CML = sig (** Trace modules ** * * The basic idea is that one defines a heirarchy of ``trace * modules,'' which provide valves for debugging output. *) type trace_module (* where to direct trace output to *) datatype trace_to = TraceToOut | TraceToErr | TraceToNull | TraceToFile of string | TraceToStream of TextIO.outstream val setTraceFile : trace_to -> unit (* Direct the destination of trace output. Note: TraceToStream * can only be specified as a destination if CML is running. *) val traceRoot : trace_module (* the root module of the trace hierarchy *) exception NoSuchModule val traceModule : (trace_module * string) -> trace_module val nameOf : trace_module -> string (* return the name of the module *) val moduleOf : string -> trace_module (* return the module specified by the given string, or raise * NoSuchModule if none exists. *) val traceOn : trace_module -> unit (* turn tracing on for a module and its descendents *) val traceOff : trace_module -> unit (* turn tracing off for a module and its descendents *) val traceOnly : trace_module -> unit (* turn tracing on for a module (but not for its descendents) *) val amTracing : trace_module -> bool (* return true if this module is being traced *) val status : trace_module -> (trace_module * bool) list (* return a list of the registered modules dominated by the given * module, and their status. *) val trace : (trace_module * (unit -> string list)) -> unit (* conditionally generate tracing output *) (** Thread watching **) val watcher : trace_module (* controls printing of thread watching messages; the module's name * is "/ThreadWatcher/" *) val watch : (string * CML.thread_id) -> unit (* watch the given thread for unexpected termination *) val unwatch : CML.thread_id -> unit (* stop watching the named thread *) (** Uncaught exception handling **) val setUncaughtFn : ((CML.thread_id * exn) -> unit) -> unit (* this sets the default uncaught exception action. *) val setHandleFn : ((CML.thread_id * exn) -> bool) -> unit (* add an additional uncaught exception action. If the action returns * true, then no further action is taken. This can be used to handle * application specific exceptions. *) val resetUncaughtFn : unit -> unit (* this resets the default uncaught exception action to the system default, * and removes any layered actions. *) end; (* TRACE_CML *)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -