erlang:trace_pattern(MFA :: send, MatchSpec, FlagList :: []) ->
integer() >= 0
OTP 19.0MatchSpec = (MatchSpecList :: trace_match_spec()) | boolean()
设置跟踪模式消息发送。必须与erlang:trace/3
设置send
一个或多个进程的跟踪标志。默认情况下,所有消息发送自send
跟踪的进程被跟踪。要根据消息内容、发送者和/或接收者限制跟踪的发送事件,请使用erlang:trace_pattern/3
.
参数 MatchSpec
可以采用以下形式:
MatchSpecList
-
匹配规范列表。匹配在列表上完成
[Receiver, Msg]
.Receiver
是接收者的进程或端口标识Msg
是消息术语。发送进程的pid可以通过guard函数获取self/0
。空列表与true
。有关详细信息,请参阅部分Erlang 中的匹配规范在用户指南中。 true
-
启用对所有已发送消息的跟踪(来自
send
跟踪进程)。任何匹配规范都会被删除。这是默认设置。 false
-
禁用对所有已发送消息的跟踪。任何匹配规范都会被删除。
对于发送跟踪,参数 FlagList
必须是 []
。
返回值始终为 1
。
例子:
仅跟踪特定进程的消息Pid
:
> erlang:trace_pattern(send, [{[Pid, '_'],[],[]}], []).
1
仅跟踪匹配 {reply, _}
的消息:
> erlang:trace_pattern(send, [{['_', {reply,'_'}],[],[]}], []).
1
仅跟踪发送给发送者本身的消息:
> erlang:trace_pattern(send, [{['$1', '_'],[{'=:=','$1',{self}}],[]}], []).
1
仅跟踪发送到其他节点的消息:
> erlang:trace_pattern(send, [{['$1', '_'],[{'=/=',{node,'$1'},{node}}],[]}], []).
1
send
跟踪的匹配规范可以使用除 caller
之外的所有保护函数和主体函数。
通过引发错误异常而失败,错误原因为:
badarg
-
如果论证无效。
system_limit
-
如果作为参数传递的匹配规范具有过多的嵌套,这会导致调用进程正在其上执行的调度程序的调度程序堆栈耗尽。调度程序堆栈大小可以在启动运行时系统时进行配置。
相关用法
- erlang trace_pattern(MFA :: 'receive', MatchSpec, FlagList :: [])用法及代码示例
- erlang traverse(Name, Fun)用法及代码示例
- erlang transaction(Fun)用法及代码示例
- erlang transcode(URIString, Options)用法及代码示例
- erlang trunc(Number)用法及代码示例
- erlang trim(String)用法及代码示例
- erlang tan用法及代码示例
- erlang tuple_to_list用法及代码示例
- erlang term_to_binary用法及代码示例
- erlang table(Table)用法及代码示例
- erlang term_to_binary(Term)用法及代码示例
- erlang throw(Any)用法及代码示例
- erlang time()用法及代码示例
- erlang timestamp()用法及代码示例
- erlang tl(List)用法及代码示例
- erlang tuple_size(Tuple)用法及代码示例
- erlang tuple_to_list(Tuple)用法及代码示例
- erlang to_list(Q :: queue(Item))用法及代码示例
- erlang take(Key, Orddict)用法及代码示例
- erlang table(Name)用法及代码示例
- erlang take(Key, Map1)用法及代码示例
- erlang to_list(MapOrIterator)用法及代码示例
- erlang take(String, Characters)用法及代码示例
- erlang titlecase(String :: unicode:chardata())用法及代码示例
- erlang to_float(String)用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 trace_pattern(MFA :: send, MatchSpec, FlagList :: []) -> integer() >= 0。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。