Index: runtime/vm/service.cc |
diff --git a/runtime/vm/service.cc b/runtime/vm/service.cc |
index c456fee51e9516a6f5088e970b5e4f7e47cf6322..97c0949e3c3f8a2d6526cf4e504d5d67c740be76 100644 |
--- a/runtime/vm/service.cc |
+++ b/runtime/vm/service.cc |
@@ -40,6 +40,7 @@ |
#include "vm/type_table.h" |
#include "vm/unicode.h" |
#include "vm/version.h" |
+#include "vm/kernel_isolate.h" |
namespace dart { |
@@ -61,6 +62,8 @@ DEFINE_FLAG(bool, |
"Print a message when an isolate is paused but there is no " |
"debugger attached."); |
+DECLARE_FLAG(bool, show_kernel_isolate); |
+ |
#ifndef PRODUCT |
// The name of this of this vm as reported by the VM service protocol. |
static char* vm_name = NULL; |
@@ -3782,7 +3785,12 @@ class ServiceIsolateVisitor : public IsolateVisitor { |
virtual ~ServiceIsolateVisitor() {} |
void VisitIsolate(Isolate* isolate) { |
- if (!IsVMInternalIsolate(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) { |
jsarr_->AddValue(isolate); |
} |
} |