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

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

Issue 1087133005: Reland of crrev.com/1100173002 (Add a WinHeap dump provider to the memory profiler.) (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 8 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_dump_manager.h" 5 #include "base/trace_event/memory_dump_manager.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/atomic_sequence_num.h" 9 #include "base/atomic_sequence_num.h"
10 #include "base/compiler_specific.h" 10 #include "base/compiler_specific.h"
11 #include "base/trace_event/memory_dump_provider.h" 11 #include "base/trace_event/memory_dump_provider.h"
12 #include "base/trace_event/memory_dump_session_state.h" 12 #include "base/trace_event/memory_dump_session_state.h"
13 #include "base/trace_event/process_memory_dump.h" 13 #include "base/trace_event/process_memory_dump.h"
14 #include "base/trace_event/trace_event_argument.h" 14 #include "base/trace_event/trace_event_argument.h"
15 15
16 #if defined(OS_LINUX) || defined(OS_ANDROID) 16 #if defined(OS_LINUX) || defined(OS_ANDROID)
17 #include "base/trace_event/malloc_dump_provider.h" 17 #include "base/trace_event/malloc_dump_provider.h"
18 #include "base/trace_event/process_memory_maps_dump_provider.h" 18 #include "base/trace_event/process_memory_maps_dump_provider.h"
19 #include "base/trace_event/process_memory_totals_dump_provider.h" 19 #include "base/trace_event/process_memory_totals_dump_provider.h"
20 #elif defined(OS_WIN)
21 #include "base/trace_event/winheap_dump_provider_win.h"
20 #endif 22 #endif
21 23
22 namespace base { 24 namespace base {
23 namespace trace_event { 25 namespace trace_event {
24 26
25 namespace { 27 namespace {
26 28
27 // TODO(primiano): this should be smarter and should do something similar to 29 // TODO(primiano): this should be smarter and should do something similar to
28 // trace event synthetic delays. 30 // trace event synthetic delays.
29 const char kTraceCategory[] = TRACE_DISABLED_BY_DEFAULT("memory-infra"); 31 const char kTraceCategory[] = TRACE_DISABLED_BY_DEFAULT("memory-infra");
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 trace_event::TraceLog::GetInstance()->AddEnabledStateObserver(this); 160 trace_event::TraceLog::GetInstance()->AddEnabledStateObserver(this);
159 161
160 if (skip_core_dumpers_auto_registration_for_testing_) 162 if (skip_core_dumpers_auto_registration_for_testing_)
161 return; 163 return;
162 164
163 #if defined(OS_LINUX) || defined(OS_ANDROID) 165 #if defined(OS_LINUX) || defined(OS_ANDROID)
164 // Enable the core dump providers. 166 // Enable the core dump providers.
165 RegisterDumpProvider(ProcessMemoryTotalsDumpProvider::GetInstance()); 167 RegisterDumpProvider(ProcessMemoryTotalsDumpProvider::GetInstance());
166 RegisterDumpProvider(ProcessMemoryMapsDumpProvider::GetInstance()); 168 RegisterDumpProvider(ProcessMemoryMapsDumpProvider::GetInstance());
167 RegisterDumpProvider(MallocDumpProvider::GetInstance()); 169 RegisterDumpProvider(MallocDumpProvider::GetInstance());
170 #elif defined(OS_WIN)
171 RegisterDumpProvider(WinHeapDumpProvider::GetInstance());
168 #endif 172 #endif
169 } 173 }
170 174
171 void MemoryDumpManager::SetDelegate(MemoryDumpManagerDelegate* delegate) { 175 void MemoryDumpManager::SetDelegate(MemoryDumpManagerDelegate* delegate) {
172 AutoLock lock(lock_); 176 AutoLock lock(lock_);
173 DCHECK_EQ(static_cast<MemoryDumpManagerDelegate*>(nullptr), delegate_); 177 DCHECK_EQ(static_cast<MemoryDumpManagerDelegate*>(nullptr), delegate_);
174 delegate_ = delegate; 178 delegate_ = delegate;
175 } 179 }
176 180
177 void MemoryDumpManager::RegisterDumpProvider(MemoryDumpProvider* mdp) { 181 void MemoryDumpManager::RegisterDumpProvider(MemoryDumpProvider* mdp) {
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
361 void MemoryDumpManager::OnTraceLogDisabled() { 365 void MemoryDumpManager::OnTraceLogDisabled() {
362 AutoLock lock(lock_); 366 AutoLock lock(lock_);
363 periodic_dump_timer_.Stop(); 367 periodic_dump_timer_.Stop();
364 dump_providers_enabled_.clear(); 368 dump_providers_enabled_.clear();
365 subtle::NoBarrier_Store(&memory_tracing_enabled_, 0); 369 subtle::NoBarrier_Store(&memory_tracing_enabled_, 0);
366 session_state_ = nullptr; 370 session_state_ = nullptr;
367 } 371 }
368 372
369 } // namespace trace_event 373 } // namespace trace_event
370 } // namespace base 374 } // namespace base
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698