From 36e9d73aa08930ddf3e3587addfb9a647a41b3e7 Mon Sep 17 00:00:00 2001
From: Sverker Eriksson
Date: Wed, 6 Apr 2016 15:05:10 +0200
Subject: erts: Add docs for trace_pattern with 'send' and 'receive'
---
erts/doc/src/erlang.xml | 140 +++++++++++++++++++++++++++++++++++++++++++++---
1 file changed, 134 insertions(+), 6 deletions(-)
(limited to 'erts/doc/src/erlang.xml')
diff --git a/erts/doc/src/erlang.xml b/erts/doc/src/erlang.xml
index c7b5ea8867..f88d05cdc3 100644
--- a/erts/doc/src/erlang.xml
+++ b/erts/doc/src/erlang.xml
@@ -9124,27 +9124,155 @@ timestamp() ->
- Sets trace patterns for global call tracing.
+ Sets trace patterns for call, send or 'receive' tracing.
The same as
- erlang:trace_pattern(MFA, MatchSpec, []),
+ erlang:trace_pattern(Event, MatchSpec, []),
retained for backward compatibility.
-
+
+ Sets trace pattern for message sending.
+
+
Sets trace pattern for message sending.
+ Must be combined with
+ erlang:trace/3
+ to set the send trace flag for one or more processes.
+ By default all messages, sent from send traced processes,
+ are traced. Use erlang:trace_pattern/3 to limit
+ traced send events based on the message content, the sender
+ and/or the receiver.
+
Argument MatchSpec can take the
+ following forms:
+
+ MatchSpecList
+
+
A list of match specifications. The matching is done
+ on the list [Receiver, Msg]. Receiver
+ is the process or port identity of the receiver and
+ Msg is the message term. The pid of the sending
+ process can be accessed with the guard function
+ self/0. An empty list is the same as true.
+ See the users guide section
+ Match Specifications in Erlang
+ for more information.
+
+ true
+
+
Enables tracing for all sent messages (from send
+ traced processes). Any match specification is
+ removed. This is the default.
+
+ false
+
+
Disables tracing for all sent messages.
+ Any match specification is removed.
+
+
+
Argument FlagList must be []
+ for send tracing.
+
The return value is always 1.
+
Example; only trace messages to a specific process Pid:
A match specification for send trace can use
+ all guard and body functions except caller.
+
+
+
+
+
+ Sets trace pattern for tracing of message receiving.
+
+
+
Sets trace pattern for message receiving.
+ Must be combined with
+ erlang:trace/3
+ to set the 'receive' trace flag for one or more processes.
+ By default all messages, received by 'receive' traced processes,
+ are traced. Use erlang:trace_pattern/3 to limit
+ traced receive events based on the message content, the sender
+ and/or the receiver.
+
Argument MatchSpec can take the
+ following forms:
+
+ MatchSpecList
+
+
A list of match specifications. The matching is done
+ on the list [Node, Sender, Msg]. Node
+ is the node name of the sender. Sender is the
+ process or port identity of the sender, or the atom
+ undefined if the sender is not known (which may
+ be the case for remote senders). Msg is the
+ message term. The pid of the receiving process can be
+ accessed with the guard function self/0. An empty
+ list is the same as true. See the users guide section
+ Match Specifications in Erlang
+ for more information.
+
+ true
+
+
Enables tracing for all received messages (to 'receive'
+ traced processes). Any match specification is
+ removed. This is the default.
+
+ false
+
+
Disables tracing for all sent messages.
+ Any match specification is removed.
+
+
+
Argument FlagList must be []
+ for receive tracing.
+
The return value is always 1.
+
Example; only trace messages from a specific process Pid:
A match specification for 'receive' trace can
+ use all guard and body functions except caller,
+ is_seq_trace, get_seq_token, set_seq_token, enable_trace,
+ disable_trace, trace, silent and process_dump.
+
+
+
+
+ Sets trace patterns for tracing of function calls.
-
Enables or disables call tracing for
- one or more functions. Must be combined with
+
Enables or disables call tracing for one or more functions.
+ Must be combined with
erlang:trace/3
- to set the call trace flag for one or more processes.
+ to set the call trace flag
+ for one or more processes.
Conceptually, call tracing works as follows. Inside
the Erlang Virtual Machine, a set of processes and
a set of functions are to be traced. If a traced process
--
cgit v1.2.3