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 6ed1ca8fff3aa55d94af524a1a0e0057183b02ac..f42f5b3caf5bfe8be339def3c3fed74fa0540f8a 100644 |
--- a/base/trace_event/memory_dump_manager.cc |
+++ b/base/trace_event/memory_dump_manager.cc |
@@ -98,6 +98,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 |
@@ -807,6 +816,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); |
} |
} |