Index: base/trace_event/memory_dump_manager.cc |
diff --git a/base/trace_event/memory_dump_manager.cc b/base/trace_event/memory_dump_manager.cc |
index d1025c1215a68ef8127f70ca7de1e362c6667cc0..d957577e7854a0da5fb014cd08d95cce23c748df 100644 |
--- a/base/trace_event/memory_dump_manager.cc |
+++ b/base/trace_event/memory_dump_manager.cc |
@@ -92,6 +92,15 @@ void OnGlobalDumpDone(MemoryDumpCallback wrapped_callback, |
} |
} |
+void FillOsDumpFromProcessMemoryDump( |
+ const ProcessMemoryDump* pmd, |
+ MemoryDumpCallbackResult::OSMemDump* osDump) { |
+ if (pmd->has_process_totals()) { |
+ const ProcessMemoryTotals* totals = pmd->process_totals(); |
+ osDump->resident_set_kb = totals->resident_set_bytes() / 1024; |
+ } |
+} |
+ |
// Proxy class which wraps a ConvertableToTraceFormat owned by the |
// |session_state| into a proxy object that can be added to the trace event log. |
// This is to solve the problem that the MemoryDumpSessionState is refcounted |
@@ -798,6 +807,10 @@ void MemoryDumpManager::FinalizeDumpAndAddToTrace( |
GetDumpsSumKb("partition_alloc/partitions/*", process_memory_dump); |
result.chrome_dump.blink_gc_total_kb = |
GetDumpsSumKb("blink_gc", process_memory_dump); |
+ FillOsDumpFromProcessMemoryDump(process_memory_dump, &result.os_dump); |
+ } else { |
+ auto& os_dump = result.extra_processes_dump[pid]; |
+ FillOsDumpFromProcessMemoryDump(process_memory_dump, &os_dump); |
} |
} |