diff --git a/lib/et/src/et.erl b/lib/et/src/et.erl index 3f4a063568a5..220a2c884b58 100644 --- a/lib/et/src/et.erl +++ b/lib/et/src/et.erl @@ -91,6 +91,7 @@ -type actor() :: term(). +-type level() :: 0..100. %%---------------------------------------------------------------------- %% Reports an event, such as a message @@ -130,7 +131,7 @@ %%---------------------------------------------------------------------- -spec trace_me(DetailLevel, FromTo, Label, Contents) -> hopefully_traced when - DetailLevel :: pos_integer(), + DetailLevel :: level(), FromTo :: actor(), Label :: atom() | string() | term(), Contents :: [{Key::term(), Value::term()}] | term(). @@ -139,7 +140,7 @@ trace_me(DetailLevel, FromTo, Label, Contents) ?MODULE:trace_me(DetailLevel, FromTo, FromTo, Label, Contents). -spec trace_me(DetailLevel, From, To, Label, Contents) -> hopefully_traced when - DetailLevel :: pos_integer(), + DetailLevel :: level(), From :: actor(), To :: actor(), Label :: atom() | string() | term(), @@ -149,7 +150,7 @@ trace_me(DetailLevel, _From, _To, _Label, _Contents) hopefully_traced. -spec phone_home(DetailLevel, FromTo, Label, Contents) -> hopefully_traced when - DetailLevel :: pos_integer(), + DetailLevel :: level(), FromTo :: actor(), Label :: atom() | string() | term(), Contents :: [{Key::term(), Value::term()}] | term(). @@ -158,7 +159,7 @@ phone_home(DetailLevel, FromTo, Label, Contents) -> ?MODULE:trace_me(DetailLevel, FromTo, FromTo, Label, Contents). -spec phone_home(DetailLevel, From, To, Label, Contents) -> hopefully_traced when - DetailLevel :: pos_integer(), + DetailLevel :: level(), From :: actor(), To :: actor(), Label :: atom() | string() | term(), @@ -168,7 +169,7 @@ phone_home(DetailLevel, From, To, Label, Contents) -> ?MODULE:trace_me(DetailLevel, From, To, Label, Contents). -spec report_event(DetailLevel, FromTo, Label, Contents) -> hopefully_traced when - DetailLevel :: pos_integer(), + DetailLevel :: level(), FromTo :: actor(), Label :: atom() | string() | term(), Contents :: [{Key::term(), Value::term()}] | term(). @@ -177,7 +178,7 @@ report_event(DetailLevel, FromTo, Label, Contents) -> ?MODULE:trace_me(DetailLevel, FromTo, FromTo, Label, Contents). -spec report_event(DetailLevel, From, To, Label, Contents) -> hopefully_traced when - DetailLevel :: pos_integer(), + DetailLevel :: level(), From :: actor(), To :: actor(), Label :: atom() | string() | term(), diff --git a/lib/et/src/et_collector.erl b/lib/et/src/et_collector.erl index 8a34a71bfff4..a585aed9cb3f 100644 --- a/lib/et/src/et_collector.erl +++ b/lib/et/src/et_collector.erl @@ -103,6 +103,8 @@ -type ets_match_object_pattern() :: term(). %% See ets:match_object() +-type level() :: 0..100. + -type option():: {parent_pid, pid() | undefined} | {event_order, trace_ts | event_ts} | @@ -114,7 +116,7 @@ {trace_client, {event_file, file:filename()} | {dbg_trace_type(), dbg_trace_parameters()}} | {trace_global, boolean()} | - {trace_pattern, {module() | undefined, Level::pos_integer() | dbg_match_spec()} | + {trace_pattern, {module() | undefined, Level::level() | dbg_match_spec()} | undefined} | {trace_port, integer()} | {trace_max_queue, integer()}. @@ -402,8 +404,8 @@ do_load_event_file(Fun, Fd, Cont, Acc, FileName, BadBytes) -> %% Returns: {ok, Continuation} | exit(Reason) %%---------------------------------------------------------------------- --spec report(CollectorPid, TraceOrEvent) -> {ok, Continuation} when - CollectorPid :: pid(), +-spec report(Handle, TraceOrEvent) -> {ok, Continuation} when + Handle :: table_handle() | CollectorPid::pid(), TraceOrEvent :: event() | TraceData | end_of_trace, TraceData :: tuple(), Continuation :: table_handle(). @@ -461,7 +463,7 @@ report(_, Bad) -> -spec report_event(CollectorPid, DetailLevel, FromTo, Label, Contents) -> {ok, Continuation} when CollectorPid :: pid(), - DetailLevel :: pos_integer(), + DetailLevel :: level(), FromTo :: actor(), Label :: term(), Contents :: [{Key::term(), Value::term()}] | term(), @@ -471,7 +473,7 @@ report_event(CollectorPid, DetailLevel, FromTo, Label, Contents) -> -spec report_event(CollectorPid, DetailLevel, From, To, Label, Contents) -> {ok, Continuation} when CollectorPid :: pid(), - DetailLevel :: pos_integer(), + DetailLevel :: level(), From :: actor(), To :: actor(), Label :: term(), @@ -581,7 +583,7 @@ get_global_pid() -> %%---------------------------------------------------------------------- -spec change_pattern(CollectorPid, RawPattern) -> {old_pattern, TracePattern} when CollectorPid :: pid(), - RawPattern :: min | max | pos_integer(), + RawPattern :: {module(), min | max | level()}, TracePattern :: [{[term()] | '_' | atom(), [term()], [term()]}]. change_pattern(CollectorPid, RawPattern) -> Pattern = et_selector:make_pattern(RawPattern), @@ -612,11 +614,11 @@ change_pattern(CollectorPid, RawPattern) -> %% Key = term() %% Val = term() %%---------------------------------------------------------------------- --spec dict_insert(CollectorPid, What, Fun) -> ok when +-spec dict_insert(CollectorPid, What, Value) -> ok when CollectorPid :: pid(), What :: {filter, atom()} | {subscriber, pid()} | Key, Key :: term(), - Fun :: collector_fun(). + Value :: collector_fun() | term(). dict_insert(CollectorPid, Key = {filter, Name}, Fun) -> if is_atom(Name), is_function(Fun) -> @@ -814,9 +816,9 @@ iterate(Handle, Prev, Limit) -> Prev :: first | last | term(), Limit :: Done | Forward | Backward, Done :: 0, - Forward :: pos_integer(), - Backward :: neg_integer(), - Fun :: fun((event(), Acc) -> NewAcc), + Forward :: pos_integer() | 'infinity', + Backward :: neg_integer() | '-infinity', + Fun :: fun((event(), Acc) -> NewAcc) | undefined, Acc :: term(), NewAcc :: term(). iterate(_, _, Limit, _, Acc) when Limit =:= 0 -> diff --git a/lib/et/src/et_selector.erl b/lib/et/src/et_selector.erl index 22d783c7570d..e83088d823fb 100644 --- a/lib/et/src/et_selector.erl +++ b/lib/et/src/et_selector.erl @@ -33,6 +33,8 @@ -type event() :: #event{}. +-type level() :: 0..100. + %%---------------------------------------------------------------------- %% make_pattern(RawPattern) -> TracePattern %% @@ -49,7 +51,7 @@ %% integer() - explicit detail level of tracing %%---------------------------------------------------------------------- -spec make_pattern({Mod::module(), RawPattern}) -> {Mod::module(), TracePattern} when - RawPattern :: min | max | pos_integer(), + RawPattern :: level(), TracePattern :: [{[term()] | '_' | atom(), [term()], [term()]}]. make_pattern(undefined) -> {undefined, undefined}; @@ -99,7 +101,7 @@ make_pattern({Mod, Pattern}) when is_atom(Mod) -> %%---------------------------------------------------------------------- -spec change_pattern({Mod::module(), Pattern}) -> ok when Pattern :: DetailLevel | TracePattern | EmptyTracePattern, - DetailLevel :: min | max | pos_integer(), + DetailLevel :: level(), TracePattern :: [{[term()] | '_' | atom(), [term()], [term()]}], EmptyTracePattern :: []. change_pattern({Mod, Pattern}) when is_atom(Mod) -> diff --git a/lib/et/src/et_viewer.erl b/lib/et/src/et_viewer.erl index 16ddf178ae9c..d3e2c2f4099d 100644 --- a/lib/et/src/et_viewer.erl +++ b/lib/et/src/et_viewer.erl @@ -44,7 +44,7 @@ -type first_key() :: term(). -type option() :: {title, string()} | - {detail_level, pos_integer()} | + {detail_level, 0..100} | {is_suspended, boolean()} | {scale, integer()} | {width, integer()} |