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 e526ee606255691a4d624897eeec79df1dfd7aa8..4865c6490941bc600d3724a54020b6661228f3cd 100644 |
--- a/base/trace_event/memory_dump_manager.cc |
+++ b/base/trace_event/memory_dump_manager.cc |
@@ -195,20 +195,20 @@ void MemoryDumpManager::EnableHeapProfilingIfNeeded() { |
if (profiling_mode == "") { |
AllocationContextTracker::SetCaptureMode( |
AllocationContextTracker::CaptureMode::PSEUDO_STACK); |
-#if (BUILDFLAG(CAN_UNWIND_WITH_FRAME_POINTERS) || !defined(NDEBUG)) |
+#if !defined(OS_NACL) |
} else if (profiling_mode == switches::kEnableHeapProfilingModeNative) { |
- // We need frame pointers for native tracing to work, and they are |
- // enabled in profiling and debug builds. |
+ // If we don't have frame pointers then native tracing falls-back to |
+ // using base::debug::StackTrace, which may be slow. |
AllocationContextTracker::SetCaptureMode( |
AllocationContextTracker::CaptureMode::NATIVE_STACK); |
-#endif |
+#endif // !defined(OS_NACL) |
#if BUILDFLAG(ENABLE_MEMORY_TASK_PROFILER) |
} else if (profiling_mode == switches::kEnableHeapProfilingTaskProfiler) { |
// Enable heap tracking, which in turn enables capture of heap usage |
// tracking in tracked_objects.cc. |
if (!base::debug::ThreadHeapUsageTracker::IsHeapTrackingEnabled()) |
base::debug::ThreadHeapUsageTracker::EnableHeapTracking(); |
-#endif |
+#endif // BUILDFLAG(ENABLE_MEMORY_TASK_PROFILER) |
} else { |
CHECK(false) << "Invalid mode '" << profiling_mode << "' for " |
<< switches::kEnableHeapProfiling << " flag."; |