Index: runtime/vm/dart.cc |
diff --git a/runtime/vm/dart.cc b/runtime/vm/dart.cc |
index d37c2d76ac2effa682675213c78c5428ba41f75e..527a84c8e197b9042b2bed75c187416ac7c925cb 100644 |
--- a/runtime/vm/dart.cc |
+++ b/runtime/vm/dart.cc |
@@ -23,6 +23,7 @@ |
namespace dart { |
+DECLARE_FLAG(bool, heap_trace); |
DECLARE_FLAG(bool, print_bootstrap); |
DECLARE_FLAG(bool, print_class_table); |
DECLARE_FLAG(bool, trace_isolates); |
@@ -98,6 +99,9 @@ const char* Dart::InitOnce(Dart_IsolateCreateCallback create, |
Isolate::SetInterruptCallback(interrupt); |
Isolate::SetUnhandledExceptionCallback(unhandled); |
Isolate::SetShutdownCallback(shutdown); |
+ if (FLAG_heap_trace) { |
+ HeapTrace::InitOnce(file_open, file_write, file_close); |
+ } |
return NULL; |
} |
@@ -174,6 +178,9 @@ RawError* Dart::InitializeIsolate(const uint8_t* snapshot_buffer, void* data) { |
} |
StubCode::Init(isolate); |
+ if (FLAG_heap_trace) { |
+ isolate->heap()->trace()->Init(isolate); |
+ } |
isolate->heap()->EnableGrowthControl(); |
isolate->set_init_callback_data(data); |
if (FLAG_print_class_table) { |