1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
|
[;1m-spec erlang:trace_info(PidPortFuncEvent, Item) -> Res[0m
[;1m when[0m
[;1m PidPortFuncEvent ::[0m
[;1m pid() |[0m
[;1m port() |[0m
[;1m new | new_processes | new_ports |[0m
[;1m {Module, Function, Arity} |[0m
[;1m on_load | send | 'receive',[0m
[;1m Module :: module(),[0m
[;1m Function :: atom(),[0m
[;1m Arity :: arity(),[0m
[;1m Item ::[0m
[;1m flags | tracer | traced |[0m
[;1m match_spec | meta | meta_match_spec |[0m
[;1m call_count | call_time | all,[0m
[;1m Res :: trace_info_return().[0m
Types:
-type match_variable() :: atom().
Approximation of '$1' | '$2' | '$3' | ...
-type trace_info_flag() ::
send | 'receive' | set_on_spawn | call | return_to | procs |
set_on_first_spawn | set_on_link | running |
garbage_collection | timestamp | monotonic_timestamp |
strict_monotonic_timestamp | arity.
-type trace_info_item_result() ::
{traced, global | local | false | undefined} |
{match_spec, trace_match_spec() | false | undefined} |
{meta, pid() | port() | false | undefined | []} |
{meta, module(), term()} |
{meta_match_spec, trace_match_spec() | false | undefined} |
{call_count, non_neg_integer() | boolean() | undefined} |
{call_time,
[{pid(),
non_neg_integer(),
non_neg_integer(),
non_neg_integer()}] |
boolean() |
undefined}.
-type trace_info_return() ::
undefined |
{flags, [trace_info_flag()]} |
{tracer, pid() | port() | []} |
{tracer, module(), term()} |
trace_info_item_result() |
{all, [trace_info_item_result()] | false | undefined}.
-type trace_match_spec() ::
[{[term()] | '_' | match_variable(), [term()], [term()]}].
Returns trace information about a port, process, function, or
event.
To get information about a port or process, [;;4mPidPortFuncEvent[0m is
to be a process identifier (pid), port identifier, or one of the
atoms [;;4mnew[0m, [;;4mnew_processes[0m, or [;;4mnew_ports[0m. The atom [;;4mnew[0m or [;;4m[0m
[;;4mnew_processes[0m means that the default trace state for processes to
be created is returned. The atom [;;4mnew_ports[0m means that the
default trace state for ports to be created is returned.
Valid [;;4mItem[0ms for ports and processes:
[;;4m[;;4mflags[0m[0m:
Returns a list of atoms indicating what kind of traces is
enabled for the process. The list is empty if no traces are
enabled, and one or more of the followings atoms if traces are
enabled: [;;4msend[0m, [;;4m'receive'[0m, [;;4mset_on_spawn[0m, [;;4mcall[0m, [;;4m[0m
[;;4mreturn_to[0m, [;;4mprocs[0m, [;;4mports[0m, [;;4mset_on_first_spawn[0m, [;;4m[0m
[;;4mset_on_link[0m, [;;4mrunning[0m, [;;4mrunning_procs[0m, [;;4mrunning_ports[0m, [;;4m[0m
[;;4msilent[0m, [;;4mexiting[0m, [;;4mmonotonic_timestamp[0m, [;;4m[0m
[;;4mstrict_monotonic_timestamp[0m, [;;4mgarbage_collection[0m, [;;4mtimestamp[0m,
and [;;4marity[0m. The order is arbitrary.
[;;4m[;;4mtracer[0m[0m:
Returns the identifier for process, port, or a tuple
containing the tracer module and tracer state tracing this
process. If this process is not traced, the return value is [;;4m[0m
[;;4m[][0m.
To get information about a function, [;;4mPidPortFuncEvent[0m is to be
the three-element tuple [;;4m{Module, Function, Arity}[0m or the atom [;;4m[0m
[;;4mon_load[0m. No wildcards are allowed. Returns [;;4mundefined[0m if the
function does not exist, or [;;4mfalse[0m if the function is not traced.
If [;;4mPidPortFuncEvent[0m is [;;4mon_load[0m, the information returned
refers to the default value for code that will be loaded.
Valid [;;4mItem[0ms for functions:
[;;4m[;;4mtraced[0m[0m:
Returns [;;4mglobal[0m if this function is traced on global function
calls, [;;4mlocal[0m if this function is traced on local function
calls (that is, local and global function calls), and [;;4mfalse[0m
if local or global function calls are not traced.
[;;4m[;;4mmatch_spec[0m[0m:
Returns the match specification for this function, if it has
one. If the function is locally or globally traced but has no
match specification defined, the returned value is [;;4m[][0m.
[;;4m[;;4mmeta[0m[0m:
Returns the meta-trace tracer process, port, or trace module
for this function, if it has one. If the function is not
meta-traced, the returned value is [;;4mfalse[0m. If the function is
meta-traced but has once detected that the tracer process is
invalid, the returned value is [;;4m[][0m.
[;;4m[;;4mmeta_match_spec[0m[0m:
Returns the meta-trace match specification for this function,
if it has one. If the function is meta-traced but has no match
specification defined, the returned value is [;;4m[][0m.
[;;4m[;;4mcall_count[0m[0m:
Returns the call count value for this function or [;;4mtrue[0m for
the pseudo function [;;4mon_load[0m if call count tracing is active.
Otherwise [;;4mfalse[0m is returned.
See also [;;4merlang:trace_pattern/3[0m.
[;;4m[;;4mcall_time[0m[0m:
Returns the call time values for this function or [;;4mtrue[0m for
the pseudo function [;;4mon_load[0m if call time tracing is active.
Otherwise [;;4mfalse[0m is returned. The call time values returned, [;;4m[0m
[;;4m[{Pid, Count, S, Us}][0m, is a list of each process that
executed the function and its specific counters.
See also [;;4merlang:trace_pattern/3[0m.
[;;4m[;;4mall[0m[0m:
Returns a list containing the [;;4m{Item, Value}[0m tuples for all
other items, or returns [;;4mfalse[0m if no tracing is active for
this function.
To get information about an event, [;;4mPidPortFuncEvent[0m is to be
one of the atoms [;;4msend[0m or [;;4m'receive'[0m.
One valid [;;4mItem[0m for events exists:
[;;4m[;;4mmatch_spec[0m[0m:
Returns the match specification for this event, if it has one,
or [;;4mtrue[0m if no match specification has been set.
The return value is [;;4m{Item, Value}[0m, where [;;4mValue[0m is the
requested information as described earlier. If a pid for a dead
process was specified, or the name of a non-existing function, [;;4m[0m
[;;4mValue[0m is [;;4mundefined[0m.
|