options() = map() | proplist()
proplist() = [{atom(), any()}]
rtp() = atom() | string() | send | 'receive'
| dtop/0 | Equivalent to dtop(#{}). |
| dtop/1 | Starts/stops (toggles) dtop. |
| help/0 | Prints help. |
| start/1 | Equivalent to start(RTPs, #{}). |
| start/2 | Starts a trace. |
| stop/0 | Stops a trace. |
dtop() -> any()
Equivalent to dtop(#{}).
dtop(Cfg) -> any()
Starts/stops (toggles) dtop.
Cfg is a map. The allowd tags are max_procs and sort.
If the number of processes is larger than max_procs, dtop will
not print any process info, just the header. This is to avoid
oveloading the VM. It defaults to 1500.
sort can be msgs, cpu, or mem, It defaults to cpu.
help() -> any()
Prints help.
start(RTPs) -> any()
Equivalent to start(RTPs, #{}).
start(RTPs::[RTP::rtp()] | (RTP::rtp()), Opts::options()) -> {Procs::integer(), Functions::integer()}
Starts a trace.
list('send'|'receive'|string(RTP))
where RTP has the form:
"MFA when GUARDS -> ACTIONS"
where MFA can be;
"mod", "mod:fun", "mod:fun/3" or "mod:fun('_',atom,X)"
GUARD is something like;
"X==1" or "is_atom(A)"
and ACTION is;
"return" and/or "stack" (separated by ",")
So, an RTP looks something like this;
"ets:lookup(T,hostname) when is_integer(T) -> stack"
Note that bindings (like we're binding 'T' above) works as expected. So this RTP;
"maps:to_list(#{a:=T,c:=#{d:=T}})"will not trigger on this call;
maps:to_list(#{a=>b,c=>#{d=>e,f=>g}}).but will trigger on this;
maps:to_list(#{a=>b,c=>#{d=>b,f=>g}}).
Opts: list({Opt,Val}) | #{Opt => Val}
general opts:
time (15000) stop trace after this many milliseconds
msgs (10) stop trace after this many messages
target (node()) node to trace on
cookie ('') target node cookie
blocking (false) block start/2, return a list of messages
procs (all) atom(all|new|running) | list(Proc)
where Proc is pid() | atom(RegName) | {pid,I2,I3}
max_queue (5000) exit if redbug-internal queue gets this long
max_msg_size (50000) exit if seeing a message bigger than this
debug (false) bigger error messages
trace_child (false) children gets traced (set_on_spawn)
arity (false) arity instead of args
discard (false) discard messages (when counting)
print-related opts
arity (false) print arity instead of argument list
buffered (no) buffer messages till end of trace
print_calls (true) print calls
print_file (standard_io) print to this file
print_msec (true) print milliseconds on time stamps
print_depth (999999) formatting depth for "~P"
print_re ("") print only strings that match this regexp
print_return (true) print return value
print_fun ('') custom print fun. gets called once for each trace
message. It can be a fun/1, (called as F(Msg),
return value is ignored), or a fun/2 (called as
F(Msg,Acc), return is next Acc)trc file related opts
file (none) use a trc file based on this name
file_size (1) size of each trc file
file_count (8) number of trc files
stop() -> any()
Stops a trace.
Generated by EDoc