aboutsummaryrefslogtreecommitdiffstats
path: root/lib/observer
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-02-19 11:59:12 +0100
committerSverker Eriksson <[email protected]>2018-02-20 17:37:21 +0100
commitcff79c76c3fb574addb5c9364f7c4c7d48a75907 (patch)
treedd27a97ebe02c91dc75e1c74b0d2849b5d1dc9e5 /lib/observer
parent43edeef1d224ace49dac13d6a5778cd0b50f1d25 (diff)
downloadotp-cff79c76c3fb574addb5c9364f7c4c7d48a75907.tar.gz
otp-cff79c76c3fb574addb5c9364f7c4c7d48a75907.tar.bz2
otp-cff79c76c3fb574addb5c9364f7c4c7d48a75907.zip
erts,observer: Add more port info to crash dump
Diffstat (limited to 'lib/observer')
-rw-r--r--lib/observer/src/cdv_port_cb.erl11
-rw-r--r--lib/observer/src/crashdump_viewer.erl9
-rw-r--r--lib/observer/src/crashdump_viewer.hrl6
3 files changed, 23 insertions, 3 deletions
diff --git a/lib/observer/src/cdv_port_cb.erl b/lib/observer/src/cdv_port_cb.erl
index b5cbe8132d..c0a6d87bce 100644
--- a/lib/observer/src/cdv_port_cb.erl
+++ b/lib/observer/src/cdv_port_cb.erl
@@ -34,7 +34,8 @@
-define(COL_CONN, ?COL_ID+1).
-define(COL_NAME, ?COL_CONN+1).
-define(COL_CTRL, ?COL_NAME+1).
--define(COL_SLOT, ?COL_CTRL+1).
+-define(COL_QUEUE, ?COL_CTRL+1).
+-define(COL_SLOT, ?COL_QUEUE+1).
@@ -44,6 +45,7 @@ col_to_elem(?COL_ID) -> #port.id;
col_to_elem(?COL_CONN) -> #port.connected;
col_to_elem(?COL_NAME) -> #port.name;
col_to_elem(?COL_CTRL) -> #port.controls;
+col_to_elem(?COL_QUEUE) -> #port.queue;
col_to_elem(?COL_SLOT) -> #port.slot.
col_spec() ->
@@ -51,6 +53,7 @@ col_spec() ->
{"Connected", ?wxLIST_FORMAT_LEFT, 120},
{"Name", ?wxLIST_FORMAT_LEFT, 150},
{"Controls", ?wxLIST_FORMAT_LEFT, 200},
+ {"Queue", ?wxLIST_FORMAT_RIGHT, 100},
{"Slot", ?wxLIST_FORMAT_RIGHT, 50}].
get_info(_) ->
@@ -98,7 +101,11 @@ info_fields() ->
[{"Name", name},
{"Connected", {click,connected}},
{"Slot", slot},
- {"Controls", controls}]},
+ {"Controls", controls},
+ {"Input bytes", input},
+ {"Output bytes", output},
+ {"Queue bytes", queue},
+ {"Port data", port_data}]},
{scroll_boxes,
[{"Links",1,{click,links}},
{"Monitors",1,{click,monitors}}]}].
diff --git a/lib/observer/src/crashdump_viewer.erl b/lib/observer/src/crashdump_viewer.erl
index a2e6519122..9605c3ca1d 100644
--- a/lib/observer/src/crashdump_viewer.erl
+++ b/lib/observer/src/crashdump_viewer.erl
@@ -1683,6 +1683,15 @@ get_portinfo(Fd,Port) ->
"Port is UNIX fd not opened by emulator" ->
Str = lists:flatten(["UNIX fd not opened by emulator: "| string(Fd)]),
get_portinfo(Fd,Port#port{controls=Str});
+ "Input" ->
+ get_portinfo(Fd,Port#port{input=list_to_integer(bytes(Fd))});
+ "Output" ->
+ get_portinfo(Fd,Port#port{output=list_to_integer(bytes(Fd))});
+ "Queue" ->
+ get_portinfo(Fd,Port#port{queue=list_to_integer(bytes(Fd))});
+ "Port Data" ->
+ get_portinfo(Fd,Port#port{port_data=string(Fd)});
+
"=" ++ _next_tag ->
Port;
Other ->
diff --git a/lib/observer/src/crashdump_viewer.hrl b/lib/observer/src/crashdump_viewer.hrl
index ff719abc23..25a37656be 100644
--- a/lib/observer/src/crashdump_viewer.hrl
+++ b/lib/observer/src/crashdump_viewer.hrl
@@ -104,7 +104,11 @@
links,
name,
monitors,
- controls}).
+ controls,
+ input,
+ output,
+ queue,
+ port_data}).
-record(sched,
{name,