diff options
Diffstat (limited to 'lib/et')
-rw-r--r-- | lib/et/doc/src/et.xml | 14 | ||||
-rw-r--r-- | lib/et/doc/src/et_collector.xml | 46 | ||||
-rw-r--r-- | lib/et/doc/src/et_selector.xml | 8 | ||||
-rw-r--r-- | lib/et/doc/src/et_viewer.xml | 14 | ||||
-rw-r--r-- | lib/et/doc/src/notes.xml | 17 | ||||
-rw-r--r-- | lib/et/src/et_wx_viewer.erl | 37 | ||||
-rw-r--r-- | lib/et/vsn.mk | 2 |
7 files changed, 80 insertions, 58 deletions
diff --git a/lib/et/doc/src/et.xml b/lib/et/doc/src/et.xml index 3009b559e1..a362d00b3e 100644 --- a/lib/et/doc/src/et.xml +++ b/lib/et/doc/src/et.xml @@ -32,14 +32,14 @@ <rev>%VSN%</rev> <file>et</file> </header> - <module>et</module> + <module since="">et</module> <modulesummary>Main API of the Event Trace (ET) application</modulesummary> <description> <p>Interface module for the Event Trace (ET) application</p> </description> <funcs> <func> - <name>trace_me(DetailLevel, From, To, Label, Contents) -> hopefully_traced</name> + <name since="OTP R13B04">trace_me(DetailLevel, From, To, Label, Contents) -> hopefully_traced</name> <fsummary>A function that is intended to be traced.</fsummary> <type> <v>DetailLevel = integer(X) when X =< 0, X >= 100</v> @@ -70,7 +70,7 @@ </func> <func> - <name>trace_me(DetailLevel, FromTo, Label, Contents) -> hopefully_traced</name> + <name since="OTP R13B04">trace_me(DetailLevel, FromTo, Label, Contents) -> hopefully_traced</name> <fsummary>A function that is intended to be traced.</fsummary> <desc> <p>Invokes <c>et:trace_me/5</c> with both <c>From</c> and <c>To</c> @@ -79,8 +79,8 @@ </func> <func> - <name>phone_home(DetailLevel, FromTo, Label, Contents) -> hopefully_traced</name> - <name>phone_home(DetailLevel, From, To, Label, Contents) -> hopefully_traced</name> + <name since="">phone_home(DetailLevel, FromTo, Label, Contents) -> hopefully_traced</name> + <name since="">phone_home(DetailLevel, From, To, Label, Contents) -> hopefully_traced</name> <fsummary>Send a signal to the outer space</fsummary> <desc> <p>These functions sends a signal to the outer space and the @@ -90,8 +90,8 @@ </desc> </func> <func> - <name>report_event(DetailLevel, FromTo, Label, Contents) -> hopefully_traced</name> - <name>report_event(DetailLevel, From, To, Label, Contents) -> hopefully_traced</name> + <name since="">report_event(DetailLevel, FromTo, Label, Contents) -> hopefully_traced</name> + <name since="">report_event(DetailLevel, From, To, Label, Contents) -> hopefully_traced</name> <fsummary>Deprecated functions</fsummary> <desc> <p>Deprecated functions which for the time being are kept for diff --git a/lib/et/doc/src/et_collector.xml b/lib/et/doc/src/et_collector.xml index fd90ecfc41..f908612797 100644 --- a/lib/et/doc/src/et_collector.xml +++ b/lib/et/doc/src/et_collector.xml @@ -32,14 +32,14 @@ <rev>%VSN%</rev> <file>et_collector.xml</file> </header> - <module>et_collector</module> + <module since="">et_collector</module> <modulesummary>Collect trace events and provide a backing storage appropriate for iteration </modulesummary> <description> <p>Interface module for the Event Trace (ET) application</p> </description> <funcs> <func> - <name>start_link(Options) -> {ok, CollectorPid} | {error, Reason}</name> + <name since="">start_link(Options) -> {ok, CollectorPid} | {error, Reason}</name> <fsummary>Start a collector process</fsummary> <type> <v>Options = [option()]</v> @@ -105,7 +105,7 @@ </desc> </func> <func> - <name>stop(CollectorPid) -> ok</name> + <name since="">stop(CollectorPid) -> ok</name> <fsummary>Stop a collector process</fsummary> <type> <v>CollectorPid = pid()</v> @@ -115,7 +115,7 @@ </desc> </func> <func> - <name>save_event_file(CollectorPid, FileName, Options) -> ok | {error, Reason}</name> + <name since="">save_event_file(CollectorPid, FileName, Options) -> ok | {error, Reason}</name> <fsummary>Save the events to a file</fsummary> <type> <v>CollectorPid = pid()</v> @@ -139,7 +139,7 @@ </desc> </func> <func> - <name>load_event_file(CollectorPid, FileName) -> {ok, BadBytes} | exit(Reason)</name> + <name since="">load_event_file(CollectorPid, FileName) -> {ok, BadBytes} | exit(Reason)</name> <fsummary>Load the event table from a file</fsummary> <type> <v>CollectorPid = pid()</v> @@ -152,9 +152,9 @@ </desc> </func> <func> - <name>report(Handle, TraceOrEvent) -> {ok, Continuation} | exit(Reason)</name> - <name>report_event(Handle, DetailLevel, FromTo, Label, Contents) -> {ok, Continuation} | exit(Reason)</name> - <name>report_event(Handle, DetailLevel, From, To, Label, Contents) -> {ok, Continuation} | exit(Reason)</name> + <name since="">report(Handle, TraceOrEvent) -> {ok, Continuation} | exit(Reason)</name> + <name since="">report_event(Handle, DetailLevel, FromTo, Label, Contents) -> {ok, Continuation} | exit(Reason)</name> + <name since="">report_event(Handle, DetailLevel, From, To, Label, Contents) -> {ok, Continuation} | exit(Reason)</name> <fsummary>Report an event to the collector</fsummary> <type> <v>Handle = Initial | Continuation</v> @@ -181,7 +181,7 @@ </desc> </func> <func> - <name>make_key(Type, Stuff) -> Key</name> + <name since="">make_key(Type, Stuff) -> Key</name> <fsummary>Make a key out of an event record or an old key</fsummary> <type> <v>Type = record(table_handle) | trace_ts | event_ts</v> @@ -193,7 +193,7 @@ </desc> </func> <func> - <name>get_table_handle(CollectorPid) -> Handle</name> + <name since="">get_table_handle(CollectorPid) -> Handle</name> <fsummary>Return a table handle</fsummary> <type> <v>CollectorPid = pid()</v> @@ -204,7 +204,7 @@ </desc> </func> <func> - <name>get_global_pid() -> CollectorPid | exit(Reason)</name> + <name since="">get_global_pid() -> CollectorPid | exit(Reason)</name> <fsummary>Return a the identity of the globally registered collector if there is any</fsummary> <type> <v>CollectorPid = pid()</v> @@ -216,7 +216,7 @@ </desc> </func> <func> - <name>change_pattern(CollectorPid, RawPattern) -> {old_pattern, TracePattern}</name> + <name since="">change_pattern(CollectorPid, RawPattern) -> {old_pattern, TracePattern}</name> <fsummary>Change active trace pattern globally on all trace nodes</fsummary> <type> <v>CollectorPid = pid()</v> @@ -232,9 +232,9 @@ </desc> </func> <func> - <name>dict_insert(CollectorPid, {filter, collector}, FilterFun) -> ok</name> - <name>dict_insert(CollectorPid, {subscriber, SubscriberPid}, Void) -> ok</name> - <name>dict_insert(CollectorPid, Key, Val) -> ok</name> + <name since="">dict_insert(CollectorPid, {filter, collector}, FilterFun) -> ok</name> + <name since="">dict_insert(CollectorPid, {subscriber, SubscriberPid}, Void) -> ok</name> + <name since="">dict_insert(CollectorPid, Key, Val) -> ok</name> <fsummary>Insert a dictionary entry and send a {et, {dict_insert, Key, Val}} tuple to all registered subscribers.</fsummary> <type> <v>CollectorPid = pid()</v> @@ -259,7 +259,7 @@ </desc> </func> <func> - <name>dict_lookup(CollectorPid, Key) -> [Val]</name> + <name since="">dict_lookup(CollectorPid, Key) -> [Val]</name> <fsummary>Lookup a dictionary entry and return zero or one value</fsummary> <type> <v>CollectorPid = pid()</v> @@ -273,7 +273,7 @@ </desc> </func> <func> - <name>dict_delete(CollectorPid, Key) -> ok</name> + <name since="">dict_delete(CollectorPid, Key) -> ok</name> <fsummary>Delete a dictionary entry and send a {et, {dict_delete, Key}} tuple to all registered subscribers.</fsummary> <type> <v>CollectorPid = pid()</v> @@ -290,7 +290,7 @@ </desc> </func> <func> - <name>dict_match(CollectorPid, Pattern) -> [Match]</name> + <name since="">dict_match(CollectorPid, Pattern) -> [Match]</name> <fsummary>Match some dictionary entries</fsummary> <type> <v>CollectorPid = pid()</v> @@ -306,7 +306,7 @@ </desc> </func> <func> - <name>multicast(_CollectorPid, Msg) -> ok</name> + <name since="">multicast(_CollectorPid, Msg) -> ok</name> <fsummary>Sends a message to all registered subscribers</fsummary> <type> <v>CollectorPid = pid()</v> @@ -318,7 +318,7 @@ </desc> </func> <func> - <name>start_trace_client(CollectorPid, Type, Parameters) -> file_loaded | {trace_client_pid, pid()} | exit(Reason)</name> + <name since="">start_trace_client(CollectorPid, Type, Parameters) -> file_loaded | {trace_client_pid, pid()} | exit(Reason)</name> <fsummary>Load raw Erlang trace from a file, port or process.</fsummary> <type> <v>Type = dbg_trace_client_type()</v> @@ -330,14 +330,14 @@ </desc> </func> <func> - <name>iterate(Handle, Prev, Limit) -> NewAcc</name> + <name since="">iterate(Handle, Prev, Limit) -> NewAcc</name> <fsummary>Iterates over the currently stored events</fsummary> <desc> <p>Short for iterate(Handle, Prev, Limit, undefined, Prev) -> NewAcc</p> </desc> </func> <func> - <name>iterate(Handle, Prev, Limit, Fun, Acc) -> NewAcc</name> + <name since="">iterate(Handle, Prev, Limit, Fun, Acc) -> NewAcc</name> <fsummary>Iterate over the currently stored events</fsummary> <type> <v>Handle = collector_pid() | table_handle()</v> @@ -361,7 +361,7 @@ </desc> </func> <func> - <name>clear_table(Handle) -> ok</name> + <name since="">clear_table(Handle) -> ok</name> <fsummary>Clear the event table</fsummary> <type> <v>Handle = collector_pid() | table_handle()</v> diff --git a/lib/et/doc/src/et_selector.xml b/lib/et/doc/src/et_selector.xml index 30ca74c872..3c766cafb7 100644 --- a/lib/et/doc/src/et_selector.xml +++ b/lib/et/doc/src/et_selector.xml @@ -32,7 +32,7 @@ <rev>%VSN%</rev> <file>et_selector.xml</file> </header> - <module>et_selector</module> + <module since="">et_selector</module> <modulesummary>Define event transforms and trace patterns</modulesummary> <description> <p></p> @@ -40,7 +40,7 @@ <funcs> <func> - <name>make_pattern(RawPattern) -> TracePattern</name> + <name since="">make_pattern(RawPattern) -> TracePattern</name> <fsummary>Makes a trace pattern suitable to feed change_pattern/1</fsummary> <type> @@ -61,7 +61,7 @@ </func> <func> - <name>change_pattern(Pattern) -> ok</name> + <name since="">change_pattern(Pattern) -> ok</name> <fsummary>Activates/deactivates tracing by changing the current trace pattern</fsummary> @@ -85,7 +85,7 @@ </desc> </func> <func> - <name>parse_event(Mod, ValidTraceData) -> false | true | {true, Event}</name> + <name since="">parse_event(Mod, ValidTraceData) -> false | true | {true, Event}</name> <fsummary>Transforms trace data and makes an event record out of it</fsummary> diff --git a/lib/et/doc/src/et_viewer.xml b/lib/et/doc/src/et_viewer.xml index e0b39636e9..9d59eef668 100644 --- a/lib/et/doc/src/et_viewer.xml +++ b/lib/et/doc/src/et_viewer.xml @@ -32,14 +32,14 @@ <rev>%VSN%</rev> <file>et_viewer.xml</file> </header> - <module>et_viewer</module> + <module since="">et_viewer</module> <modulesummary>Displays a sequence chart for trace events (messages/actions)</modulesummary> <description> <p></p> </description> <funcs> <func> - <name>file(FileName) -> {ok, ViewerPid} | {error, Reason}</name> + <name since="">file(FileName) -> {ok, ViewerPid} | {error, Reason}</name> <fsummary>Start a new event viewer and a corresponding collector and load them with trace events from a trace file.</fsummary> <type> <v>FileName() = string()</v> @@ -52,7 +52,7 @@ </desc> </func> <func> - <name>start() -> ok</name> + <name since="">start() -> ok</name> <fsummary>Simplified start of a sequence chart viewer with global tracing activated.</fsummary> <desc> <p>Simplified start of a sequence chart viewer with @@ -62,7 +62,7 @@ </desc> </func> <func> - <name>start(Options) -> ok</name> + <name since="">start(Options) -> ok</name> <fsummary>Start of a sequence chart viewer without linking to the parent process.</fsummary> <desc> <p>Start of a sequence chart viewer without linking @@ -70,7 +70,7 @@ </desc> </func> <func> - <name>start_link(Options) -> {ok, ViewerPid} | {error, Reason}</name> + <name since="">start_link(Options) -> {ok, ViewerPid} | {error, Reason}</name> <fsummary>Start a sequence chart viewer for trace events (messages/actions)</fsummary> <type> <v>Options = [option() | collector_option()]</v> @@ -125,7 +125,7 @@ </desc> </func> <func> - <name>get_collector_pid(ViewerPid) -> CollectorPid</name> + <name since="">get_collector_pid(ViewerPid) -> CollectorPid</name> <fsummary>Returns the identifier of the collector process</fsummary> <type> <v>ViewerPid = pid()</v> @@ -136,7 +136,7 @@ </desc> </func> <func> - <name>stop(ViewerPid) -> ok</name> + <name since="">stop(ViewerPid) -> ok</name> <fsummary>Stops a viewer</fsummary> <type> <v>ViewerPid = pid()</v> diff --git a/lib/et/doc/src/notes.xml b/lib/et/doc/src/notes.xml index 110d3b2110..e144defb69 100644 --- a/lib/et/doc/src/notes.xml +++ b/lib/et/doc/src/notes.xml @@ -37,6 +37,23 @@ one section in this document. The title of each section is the version number of <c>Event Tracer (ET)</c>.</p> +<section><title>ET 1.6.4</title> + + <section><title>Fixed Bugs and Malfunctions</title> + <list> + <item> + <p> + The scroll bar of the et_viewer window could not be + dragged all the way to the top of the window. It would + always stop at the second event. This is now corrected.</p> + <p> + Own Id: OTP-15463 Aux Id: ERL-780 </p> + </item> + </list> + </section> + +</section> + <section><title>ET 1.6.3</title> <section><title>Fixed Bugs and Malfunctions</title> diff --git a/lib/et/src/et_wx_viewer.erl b/lib/et/src/et_wx_viewer.erl index 4dd44e7a4c..041527fec4 100644 --- a/lib/et/src/et_wx_viewer.erl +++ b/lib/et/src/et_wx_viewer.erl @@ -793,8 +793,8 @@ handle_info(#wx{event = #wxScroll{type = scroll_changed}} = Wx, S) -> N = round(S#state.n_events * Pos / Range), Diff = case N - event_pos(S) of - D when D < 0 -> D - 1; - D -> D + 1 + D when D < 0 -> D; + D -> D end, S2 = scroll_changed(S, Diff), noreply(S2); @@ -1002,7 +1002,7 @@ scroll_changed(S, Expected) -> scroll_first(S); last -> scroll_last(S) - end; + end; true -> %% Down OldPos = event_pos(S), @@ -1018,19 +1018,24 @@ scroll_changed(S, Expected) -> end. jump_up(S, OldKey, OldPos, NewPos) -> - Try = NewPos - OldPos, + Try = NewPos - OldPos -1, Order = S#state.event_order, - Fun = fun(Event, #e{pos = P}) when P >= NewPos -> - Key = et_collector:make_key(Order, Event), - #e{event = Event, key = Key, pos = P - 1}; - (_, Acc) -> - Acc - end, - PrevE = et_collector:iterate(S#state.collector_pid, - OldKey, - Try, - Fun, - #e{key = OldKey, pos = OldPos}), + PrevE = + if NewPos =:= 0 -> + first; + true -> + Fun = fun(Event, #e{pos = P}) when P >= NewPos -> + Key = et_collector:make_key(Order, Event), + #e{event = Event, key = Key, pos = P - 1}; + (_E, Acc) -> + Acc + end, + et_collector:iterate(S#state.collector_pid, + OldKey, + Try, + Fun, + #e{key = OldKey, pos = OldPos}) + end, case collect_more_events(S, PrevE, S#state.events_per_page) of {_, []} -> S; @@ -2013,7 +2018,7 @@ update_scroll_bar(#state{scroll_bar = ScrollBar, PixelsPerEvent = Range / EventsPerPage, Share = EventsPerPage / N, wxScrollBar:setScrollbar(ScrollBar, - trunc(EventPos * Share * PixelsPerEvent), + trunc(EventPos * Share * PixelsPerEvent), round(Share * Range), Range, round(Share * Range), diff --git a/lib/et/vsn.mk b/lib/et/vsn.mk index 9563a38000..d5416f1ea9 100644 --- a/lib/et/vsn.mk +++ b/lib/et/vsn.mk @@ -1 +1 @@ -ET_VSN = 1.6.3 +ET_VSN = 1.6.4 |