| 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.
|
|
|