查看源码 et_selector (et v1.7.1)

定义事件转换和跟踪模式

概要

函数

通过更改当前跟踪模式来激活/停用跟踪。

生成适合传递给 change_pattern/1 的跟踪模式

转换跟踪数据并从中生成事件记录。

类型

-type event() ::
          #event{detail_level :: term(),
                 trace_ts :: term(),
                 event_ts :: term(),
                 from :: term(),
                 to :: term(),
                 label :: term(),
                 contents :: term()}.
-type level() :: 0..100.

函数

链接到此函数

change_pattern(Pattern)

查看源码
-spec change_pattern({Mod :: module(), Pattern}) -> ok
                        when
                            Pattern :: DetailLevel | TracePattern | EmptyTracePattern,
                            DetailLevel :: level(),
                            TracePattern :: [{[term()] | '_' | atom(), [term()], [term()]}],
                            EmptyTracePattern :: [].

通过更改当前跟踪模式来激活/停用跟踪。

min 细节级别停用对 et:trace_me/4,5 的调用跟踪

max 细节级别激活对 et:trace_me/4,5 的所有调用跟踪

integer(X) 细节级别激活对 et:trace_me/4,5 的所有调用跟踪,这些调用的细节级别参数小于 X

空的匹配规范停用对 et:trace_me/4,5 的调用跟踪

其他的匹配规范根据 erlang:trace_pattern/2 激活对 et:trace_me/4,5 的调用跟踪。

链接到此函数

make_pattern(RawPattern)

查看源码
-spec make_pattern({Mod :: module(), RawPattern}) -> {Mod :: module(), TracePattern}
                      when
                          RawPattern :: level(),
                          TracePattern :: [{[term()] | '_' | atom(), [term()], [term()]}].

生成适合传递给 change_pattern/1 的跟踪模式

最小细节级别停用对 et:trace_me/4,5 的调用跟踪

最大细节级别激活对 et:trace_me/4,5 的所有调用跟踪

integer(X) 细节级别激活对 et:trace_me/4,5 的所有调用跟踪,这些调用的细节级别参数小于 X。

有关其 match_spec() 的更多信息,另请参见 erlang:trace_pattern/2

链接到此函数

parse_event(Mod, ValidTraceData)

查看源码
-spec parse_event(Mod, ValidTraceData) -> boolean | {true, event()}
                     when
                         Mod :: module(),
                         ValidTraceData :: ErlangTraceData | event(),
                         ErlangTraceData ::
                             {trace, pid(), atom(), term()} |
                             {trace, pid(), atom(), term(), term()} |
                             {trace_ts, pid(), atom(), term(), TS :: {integer(), integer(), integer()}} |
                             {trace_ts,
                              pid(),
                              atom(),
                              term(),
                              term(),
                              TS :: {integer(), integer(), integer()}} |
                             {seq_trace, atom(), term()} |
                             {seq_trace, atom(), term(), TS :: {integer(), integer(), integer()}} |
                             {drop, integer()}.

转换跟踪数据并从中生成事件记录。

有关跟踪数据的语义的更多信息,请参见 erlang:trace/3

事件记录包含以下字段

  • detail_level - 噪声的级别高于基本信息。

  • trace_ts - 生成跟踪的时间。如果跟踪数据中省略,则与 event_ts 相同。

  • event_ts - 创建事件记录的时间。

  • from - 来自参与者,例如消息的发送者。

  • to - 到达参与者,例如消息的接收者。

  • label - 旨在提供简短的事件摘要的标签。

  • contents - 事件的所有详细信息。

有关详细信息,请参见 et:trace_me/4et:trace_me/5

返回

  • {true, Event} - 其中 Event 是表示跟踪数据的 #event{} 记录

  • true - 表示跟踪数据已经是事件记录,并且它是有效的。不需要转换。

  • false - 表示跟踪数据不感兴趣,应该丢弃