Index: runtime/lib/vmservice.cc |
diff --git a/runtime/lib/vmservice.cc b/runtime/lib/vmservice.cc |
index 9d83c13b9d8e421a7bb7b734f77843d561c7e655..ad4e0fa6a1c1a1b98360d2477f9ea8484b9c8922 100644 |
--- a/runtime/lib/vmservice.cc |
+++ b/runtime/lib/vmservice.cc |
@@ -16,10 +16,12 @@ |
#include "vm/service_event.h" |
#include "vm/service_isolate.h" |
#include "vm/symbols.h" |
+#include "vm/kernel_isolate.h" |
namespace dart { |
DECLARE_FLAG(bool, trace_service); |
+DECLARE_FLAG(bool, show_kernel_isolate); |
static uint8_t* malloc_allocator(uint8_t* ptr, |
intptr_t old_size, |
@@ -57,8 +59,14 @@ class RegisterRunningIsolatesVisitor : public IsolateVisitor { |
virtual void VisitIsolate(Isolate* isolate) { |
ASSERT(ServiceIsolate::IsServiceIsolate(Isolate::Current())); |
- if (IsVMInternalIsolate(isolate)) { |
- // We do not register the service (and descendants) or the vm-isolate. |
+ bool is_kernel_isolate = false; |
+#ifndef DART_PRECOMPILED_RUNTIME |
+ is_kernel_isolate = |
+ KernelIsolate::IsKernelIsolate(isolate) && !FLAG_show_kernel_isolate; |
+#endif |
+ if (IsVMInternalIsolate(isolate) || is_kernel_isolate) { |
+ // We do not register the service (and descendants), the vm-isolate, or |
+ // the kernel isolate. |
return; |
} |
// Setup arguments for call. |