aboutsummaryrefslogtreecommitdiffstats
path: root/lib/runtime_tools
diff options
context:
space:
mode:
authorSiri Hansen <[email protected]>2016-05-26 15:29:03 +0200
committerSiri Hansen <[email protected]>2016-05-26 15:29:03 +0200
commite5f436615f0649a4d19b03762c016e91e0dce0eb (patch)
treed6095deb384ed356c775bff0c923152a27b677ab /lib/runtime_tools
parent89adc0eec23c1a3ac552650004863de4cf82422e (diff)
parentab22fe599d0e6918cea46d620acaf7f8e16d36b6 (diff)
downloadotp-e5f436615f0649a4d19b03762c016e91e0dce0eb.tar.gz
otp-e5f436615f0649a4d19b03762c016e91e0dce0eb.tar.bz2
otp-e5f436615f0649a4d19b03762c016e91e0dce0eb.zip
Merge branch 'siri/observer/improve-trace/OTP-13481'
* siri/observer/improve-trace/OTP-13481: [observer] Update user guide [observer] Automatically add active node [observer] Allow more trace flags on procs/ports from GUI [runtime_tools] Don't trace the trace client port [runtime_tools] Allow setting trace flag 'exiting' with dbg [observer] Add more default match specs for messages [observer] Add test of new Ports tab [observer] Improve appearance in Trace tab [observer] Allow multiple select in Ports tab [observer] Make right click menu act on the "expected pid" [observer] In Trace tab, show procs/ports for selected node only [observer] Add right click menu in Table tab [observer] Add menu option to set default MS for send/receive [observer] Add tracing of ports [ttb] Allow setting trace flags on ports [observer] Set correct parent in Label dialog [observer] Add Ports tab in GUI [observer] Add functionality in GUI for trace pattern on messages [ttb] Set trace patterns on messages Conflicts: lib/observer/src/observer_wx.erl
Diffstat (limited to 'lib/runtime_tools')
-rw-r--r--lib/runtime_tools/src/dbg.erl5
-rw-r--r--lib/runtime_tools/src/observer_backend.erl12
2 files changed, 15 insertions, 2 deletions
diff --git a/lib/runtime_tools/src/dbg.erl b/lib/runtime_tools/src/dbg.erl
index 8cdb5a43e3..c0d4665bda 100644
--- a/lib/runtime_tools/src/dbg.erl
+++ b/lib/runtime_tools/src/dbg.erl
@@ -1155,7 +1155,7 @@ all() ->
[send,'receive',call,procs,ports,garbage_collection,running,
set_on_spawn,set_on_first_spawn,set_on_link,set_on_first_link,
timestamp,monotonic_timestamp,strict_monotonic_timestamp,
- arity,return_to,silent,running_procs,running_ports].
+ arity,return_to,silent,running_procs,running_ports,exiting].
display_info([Node|Nodes]) ->
io:format("~nNode ~w:~n",[Node]),
@@ -1313,6 +1313,9 @@ tc_loop(Other, _Handler, _HData) ->
gen_reader(ip, {Host, Portno}) ->
case gen_tcp:connect(Host, Portno, [{active, false}, binary]) of
{ok, Sock} ->
+ %% Just in case this is on the traced node,
+ %% make sure the port is not traced.
+ p(Sock,clear),
mk_reader(fun ip_read/2, Sock);
Error ->
exit(Error)
diff --git a/lib/runtime_tools/src/observer_backend.erl b/lib/runtime_tools/src/observer_backend.erl
index 66653c5b7f..cedb677178 100644
--- a/lib/runtime_tools/src/observer_backend.erl
+++ b/lib/runtime_tools/src/observer_backend.erl
@@ -23,7 +23,8 @@
-export([vsn/0]).
%% observer stuff
--export([sys_info/0, get_table/3, get_table_list/2, fetch_stats/2]).
+-export([sys_info/0, get_port_list/0,
+ get_table/3, get_table_list/2, fetch_stats/2]).
%% etop stuff
-export([etop_collect/1]).
@@ -139,6 +140,15 @@ get_mnesia_loop(Parent, {Match, Cont}) ->
Parent ! {self(), Match},
get_mnesia_loop(Parent, mnesia:select(Cont)).
+get_port_list() ->
+ [begin
+ [{port_id,P}|erlang:port_info(P)] ++
+ case erlang:port_info(P,monitors) of
+ undefined -> [];
+ Monitors -> [Monitors]
+ end
+ end || P <- erlang:ports()].
+
get_table_list(ets, Opts) ->
HideUnread = proplists:get_value(unread_hidden, Opts, true),
HideSys = proplists:get_value(sys_hidden, Opts, true),