erlang:trace_pattern(MFA :: 'receive', MatchSpec, FlagList :: []) ->
integer() >= 0
OTP 19.0MatchSpec = (MatchSpecList :: trace_match_spec()) | boolean()
設置跟蹤模式消息接收。必須與erlang:trace/3
設置'receive'
一個或多個進程的跟蹤標誌。默認情況下接收的所有消息'receive'
跟蹤的進程被跟蹤。要根據消息內容、發送者和/或接收者限製跟蹤的接收事件,請使用erlang:trace_pattern/3
.
參數 MatchSpec
可以采用以下形式:
MatchSpecList
-
匹配規範列表。匹配在列表上完成
[Node, Sender, Msg]
.Node
是發送者的節點名稱。Sender
是發送者的進程或端口標識,或者原子undefined
如果發件人未知(遠程發件人可能會出現這種情況)。Msg
是消息術語。接收進程的pid可以用guard函數訪問self/0
。空列表與true
。有關詳細信息,請參閱部分Erlang 中的匹配規範在用戶指南中。 true
-
啟用對所有收到消息的跟蹤(到
'receive'
跟蹤進程)。任何匹配規範都會被刪除。這是默認設置。 false
-
禁用對所有收到消息的跟蹤。任何匹配規範都會被刪除。
對於接收跟蹤,參數 FlagList
必須是 []
。
返回值始終為 1
。
例子:
僅跟蹤來自特定進程 Pid
的消息:
> erlang:trace_pattern('receive', [{['_',Pid, '_'],[],[]}], []).
1
僅跟蹤匹配 {reply, _}
的消息:
> erlang:trace_pattern('receive', [{['_','_', {reply,'_'}],[],[]}], []).
1
隻跟蹤來自其他節點的消息:
> erlang:trace_pattern('receive', [{['$1', '_', '_'],[{'=/=','$1',{node}}],[]}], []).
1
'receive'
跟蹤的匹配規範可以使用除 caller
, is_seq_trace
, get_seq_token
, set_seq_token
, enable_trace
, disable_trace
, trace
, silent
和 process_dump
之外的所有保護函數和主體函數。
通過引發錯誤異常而失敗,錯誤原因為:
badarg
-
如果論證無效。
system_limit
-
如果作為參數傳遞的匹配規範具有過多的嵌套,這會導致調用進程正在其上執行的調度程序的調度程序堆棧耗盡。調度程序堆棧大小可以在啟動運行時係統時進行配置。
相關用法
- erlang trace_pattern(MFA :: send, 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 :: 'receive', MatchSpec, FlagList :: []) -> integer() >= 0。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。