Index: runtime/vm/service.cc |
diff --git a/runtime/vm/service.cc b/runtime/vm/service.cc |
index 47751e215fb0d98a505f62c3b77079c8065470fc..70d9e431d9de0df5edd1cd1b7b7b92838593d68e 100644 |
--- a/runtime/vm/service.cc |
+++ b/runtime/vm/service.cc |
@@ -672,9 +672,9 @@ void Service::SendEvent(const char* stream_id, |
writer.WriteMessage(list); |
intptr_t len = writer.BytesWritten(); |
if (FLAG_trace_service) { |
- OS::Print( |
- "vm-service: Pushing event of type %s to stream %s (%s), len %" Pd "\n", |
- event_type, stream_id, isolate->name(), len); |
+ OS::Print("vm-service: Pushing ServiceEvent(isolate='%s', kind='%s'," |
+ " len=%" Pd ") to stream %s\n", |
+ isolate->name(), event_type, len, stream_id); |
} |
// TODO(turnidge): For now we ignore failure to send an event. Revisit? |
PortMap::PostMessage( |
@@ -770,9 +770,9 @@ void Service::PostEvent(const char* stream_id, |
if (isolate != NULL) { |
isolate_name = isolate->name(); |
} |
- OS::Print( |
- "vm-service: Pushing event of type %s to stream %s (%s)\n", |
- kind, stream_id, isolate_name); |
+ OS::Print("vm-service: Pushing ServiceEvent(isolate='%s', kind='%s') " |
+ "to stream %s\n", |
+ isolate_name, kind, stream_id); |
} |
Dart_PostCObject(ServiceIsolate::Port(), &list_cobj); |
@@ -2968,6 +2968,19 @@ static bool GetVM(Isolate* isolate, JSONStream* js) { |
} |
+static const MethodParameter* restart_vm_params[] = { |
+ NO_ISOLATE_PARAMETER, |
+ NULL, |
+}; |
+ |
+ |
+static bool RestartVM(Isolate* isolate, JSONStream* js) { |
+ Isolate::KillAllIsolates(Isolate::kVMRestartMsg); |
+ PrintSuccess(js); |
+ return true; |
+} |
+ |
+ |
static const MethodParameter* set_exception_pause_info_params[] = { |
ISOLATE_PARAMETER, |
NULL, |
@@ -3194,6 +3207,8 @@ static ServiceMethodDescriptor service_methods_[] = { |
pause_params }, |
{ "removeBreakpoint", RemoveBreakpoint, |
remove_breakpoint_params }, |
+ { "_restartVM", RestartVM, |
+ restart_vm_params }, |
{ "resume", Resume, |
resume_params }, |
{ "_requestHeapSnapshot", RequestHeapSnapshot, |