Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(54)

Side by Side Diff: base/trace_event/memory_allocator_dump.cc

Issue 1583483002: [tracing] Add method to create "weak" global dumps (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixes. Created 4 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/trace_event/memory_allocator_dump.h" 5 #include "base/trace_event/memory_allocator_dump.h"
6 6
7 #include "base/format_macros.h" 7 #include "base/format_macros.h"
8 #include "base/strings/stringprintf.h" 8 #include "base/strings/stringprintf.h"
9 #include "base/trace_event/memory_dump_manager.h" 9 #include "base/trace_event/memory_dump_manager.h"
10 #include "base/trace_event/memory_dump_provider.h" 10 #include "base/trace_event/memory_dump_provider.h"
(...skipping 10 matching lines...) Expand all
21 const char MemoryAllocatorDump::kTypeString[] = "string"; 21 const char MemoryAllocatorDump::kTypeString[] = "string";
22 const char MemoryAllocatorDump::kUnitsBytes[] = "bytes"; 22 const char MemoryAllocatorDump::kUnitsBytes[] = "bytes";
23 const char MemoryAllocatorDump::kUnitsObjects[] = "objects"; 23 const char MemoryAllocatorDump::kUnitsObjects[] = "objects";
24 24
25 MemoryAllocatorDump::MemoryAllocatorDump(const std::string& absolute_name, 25 MemoryAllocatorDump::MemoryAllocatorDump(const std::string& absolute_name,
26 ProcessMemoryDump* process_memory_dump, 26 ProcessMemoryDump* process_memory_dump,
27 const MemoryAllocatorDumpGuid& guid) 27 const MemoryAllocatorDumpGuid& guid)
28 : absolute_name_(absolute_name), 28 : absolute_name_(absolute_name),
29 process_memory_dump_(process_memory_dump), 29 process_memory_dump_(process_memory_dump),
30 attributes_(new TracedValue), 30 attributes_(new TracedValue),
31 guid_(guid) { 31 guid_(guid),
32 flags_(0) {
32 // The |absolute_name| cannot be empty. 33 // The |absolute_name| cannot be empty.
33 DCHECK(!absolute_name.empty()); 34 DCHECK(!absolute_name.empty());
34 35
35 // The |absolute_name| can contain slash separator, but not leading or 36 // The |absolute_name| can contain slash separator, but not leading or
36 // trailing ones. 37 // trailing ones.
37 DCHECK(absolute_name[0] != '/' && *absolute_name.rbegin() != '/'); 38 DCHECK(absolute_name[0] != '/' && *absolute_name.rbegin() != '/');
38 } 39 }
39 40
40 // If the caller didn't provide a guid, make one up by hashing the 41 // If the caller didn't provide a guid, make one up by hashing the
41 // absolute_name with the current PID. 42 // absolute_name with the current PID.
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 attributes_->SetString("type", kTypeString); 84 attributes_->SetString("type", kTypeString);
84 attributes_->SetString("units", units); 85 attributes_->SetString("units", units);
85 attributes_->SetString("value", value); 86 attributes_->SetString("value", value);
86 attributes_->EndDictionary(); 87 attributes_->EndDictionary();
87 } 88 }
88 89
89 void MemoryAllocatorDump::AsValueInto(TracedValue* value) const { 90 void MemoryAllocatorDump::AsValueInto(TracedValue* value) const {
90 value->BeginDictionaryWithCopiedName(absolute_name_); 91 value->BeginDictionaryWithCopiedName(absolute_name_);
91 value->SetString("guid", guid_.ToString()); 92 value->SetString("guid", guid_.ToString());
92 value->SetValue("attrs", *attributes_); 93 value->SetValue("attrs", *attributes_);
94 if (flags_)
95 value->SetInteger("flags", static_cast<int>(flags_));
Primiano Tucci (use gerrit) 2016/01/19 17:07:11 and here you'd avoid the cast :)
ssid 2016/01/20 18:58:34 Done.
93 value->EndDictionary(); // "allocator_name/heap_subheap": { ... } 96 value->EndDictionary(); // "allocator_name/heap_subheap": { ... }
94 } 97 }
95 98
96 } // namespace trace_event 99 } // namespace trace_event
97 } // namespace base 100 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698