aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/break.c
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2018-02-27 16:47:21 +0100
committerSverker Eriksson <[email protected]>2018-02-27 16:47:21 +0100
commitabe17be1e6f2ab51606c6a3b19d6a16a429f95a8 (patch)
tree9028b18405e6765e64eeb50a112ede8d50547c9b /erts/emulator/beam/break.c
parent7d8d1c67ec71fbf24b8659faf684fbdc7ab79378 (diff)
parent2e2d1ea0affa72b613d291f4d9002292d878fc2b (diff)
downloadotp-abe17be1e6f2ab51606c6a3b19d6a16a429f95a8.tar.gz
otp-abe17be1e6f2ab51606c6a3b19d6a16a429f95a8.tar.bz2
otp-abe17be1e6f2ab51606c6a3b19d6a16a429f95a8.zip
Merge branch 'sverker/erts/more-crash-dump-info/OTP-14820' into maint
* sverker/erts/more-crash-dump-info/OTP-14820: erts,observer: Add port-suspended pids to crash dump erts,observer: Add port states and flags to crash dump erts,observer: Add dirty schedulers to crash dump observer: Refactor get_schedulerinfo1 erts,observer: Add more port info to crash dump erts: Cleanup dump_process_info() erts: Include failing garbing process in crash dump erts: Remove unused args to collect_live_heap_frags erts: Add binary vheap sizes to crash dump
Diffstat (limited to 'erts/emulator/beam/break.c')
-rw-r--r--erts/emulator/beam/break.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/erts/emulator/beam/break.c b/erts/emulator/beam/break.c
index e4c2801ea2..5ace997344 100644
--- a/erts/emulator/beam/break.c
+++ b/erts/emulator/beam/break.c
@@ -336,6 +336,12 @@ print_process_info(fmtfn_t to, void *to_arg, Process *p)
erts_print(to, to_arg, "Heap unused: %bpu\n", (p->hend - p->htop));
erts_print(to, to_arg, "OldHeap unused: %bpu\n",
(OLD_HEAP(p) == NULL) ? 0 : (OLD_HEND(p) - OLD_HTOP(p)) );
+ erts_print(to, to_arg, "BinVHeap: %b64u\n", p->off_heap.overhead);
+ erts_print(to, to_arg, "OldBinVHeap: %b64u\n", BIN_OLD_VHEAP(p));
+ erts_print(to, to_arg, "BinVHeap unused: %b64u\n",
+ BIN_VHEAP_SZ(p) - p->off_heap.overhead);
+ erts_print(to, to_arg, "OldBinVHeap unused: %b64u\n",
+ BIN_OLD_VHEAP_SZ(p) - BIN_OLD_VHEAP(p));
erts_print(to, to_arg, "Memory: %beu\n", erts_process_memory(p, !0));
if (garbing) {
@@ -905,6 +911,23 @@ erl_crash_dump_v(char *file, int line, char* fmt, va_list args)
erts_print_scheduler_info(to, to_arg, ERTS_SCHEDULER_IX(i)),
erts_cbprintf(to, to_arg, "** crashed **\n"));
}
+#ifdef ERTS_DIRTY_SCHEDULERS
+ for (i = 0; i < erts_no_dirty_cpu_schedulers; i++) {
+ ERTS_SYS_TRY_CATCH(
+ erts_print_scheduler_info(to, to_arg, ERTS_DIRTY_CPU_SCHEDULER_IX(i)),
+ erts_cbprintf(to, to_arg, "** crashed **\n"));
+ }
+ erts_cbprintf(to, to_arg, "=dirty_cpu_run_queue\n");
+ erts_print_run_queue_info(to, to_arg, ERTS_DIRTY_CPU_RUNQ);
+
+ for (i = 0; i < erts_no_dirty_io_schedulers; i++) {
+ ERTS_SYS_TRY_CATCH(
+ erts_print_scheduler_info(to, to_arg, ERTS_DIRTY_IO_SCHEDULER_IX(i)),
+ erts_cbprintf(to, to_arg, "** crashed **\n"));
+ }
+ erts_cbprintf(to, to_arg, "=dirty_io_run_queue\n");
+ erts_print_run_queue_info(to, to_arg, ERTS_DIRTY_IO_RUNQ);
+#endif /* ERTS_DIRTY_SCHEDULERS */
#endif
#ifdef ERTS_SMP