Chromium Code Reviews| Index: base/trace_event/process_memory_dump.h |
| diff --git a/base/trace_event/process_memory_dump.h b/base/trace_event/process_memory_dump.h |
| index 45a973964231fa7d794b2be72d3175871970720b..83ef2eb837610d5ed1c091798df9f3403a9cc295 100644 |
| --- a/base/trace_event/process_memory_dump.h |
| +++ b/base/trace_event/process_memory_dump.h |
| @@ -39,10 +39,10 @@ class TracedValue; |
| class BASE_EXPORT ProcessMemoryDump { |
| public: |
| struct MemoryAllocatorDumpEdge { |
| - MemoryAllocatorDumpGuid source; |
| MemoryAllocatorDumpGuid target; |
| int importance; |
| const char* type; |
| + bool overridable; |
| }; |
| // Maps allocator dumps absolute names (allocator_name/heap/subheap) to |
| @@ -53,6 +53,9 @@ class BASE_EXPORT ProcessMemoryDump { |
| using HeapDumpsMap = |
| std::unordered_map<std::string, std::unique_ptr<TracedValue>>; |
| + using AllocatorDumpEdgesMap = |
| + std::unordered_map<MemoryAllocatorDumpGuid, MemoryAllocatorDumpEdge>; |
|
hajimehoshi
2017/05/31 05:45:51
Just std::map might be better (See /base/container
ssid
2017/06/02 23:14:46
Done
|
| + |
| #if defined(COUNT_RESIDENT_BYTES_SUPPORTED) |
| // Returns the number of bytes in a kernel memory page. Some platforms may |
| // have a different value for kernel page sizes from user page sizes. It is |
| @@ -135,7 +138,14 @@ class BASE_EXPORT ProcessMemoryDump { |
| void AddOwnershipEdge(const MemoryAllocatorDumpGuid& source, |
| const MemoryAllocatorDumpGuid& target); |
| - const std::vector<MemoryAllocatorDumpEdge>& allocator_dumps_edges() const { |
| + void CreateSharedMemoryOwnershipEdge( |
| + const MemoryAllocatorDumpGuid& client_dump_guid, |
| + const MemoryAllocatorDumpGuid& client_global_dump_guid, |
| + bool is_weak, |
| + int importance, |
| + uint64_t shm_unguessable_token); |
| + |
| + const AllocatorDumpEdgesMap& allocator_dumps_edges_for_testing() const { |
| return allocator_dumps_edges_; |
| } |
| @@ -181,12 +191,17 @@ class BASE_EXPORT ProcessMemoryDump { |
| private: |
| FRIEND_TEST_ALL_PREFIXES(ProcessMemoryDumpTest, BackgroundModeTest); |
| + FRIEND_TEST_ALL_PREFIXES(ProcessMemoryDumpTest, OverrideOwnershipEdge); |
| MemoryAllocatorDump* AddAllocatorDumpInternal( |
| std::unique_ptr<MemoryAllocatorDump> mad); |
| MemoryAllocatorDump* GetBlackHoleMad(); |
| + void AddOverridableOwnershipEdge(const MemoryAllocatorDumpGuid& source, |
| + const MemoryAllocatorDumpGuid& target, |
| + int importance); |
| + |
| ProcessMemoryTotals process_totals_; |
| bool has_process_totals_; |
| @@ -200,7 +215,7 @@ class BASE_EXPORT ProcessMemoryDump { |
| scoped_refptr<MemoryDumpSessionState> session_state_; |
| // Keeps track of relationships between MemoryAllocatorDump(s). |
| - std::vector<MemoryAllocatorDumpEdge> allocator_dumps_edges_; |
| + AllocatorDumpEdgesMap allocator_dumps_edges_; |
| // Level of detail of the current dump. |
| const MemoryDumpArgs dump_args_; |