in flutter-idea/src/io/flutter/vmService/DartVmServiceListener.java [45:116]
public void received(@NotNull final String streamId, @NotNull final Event event) {
switch (event.getKind()) {
case BreakpointAdded:
// TODO Respond to breakpoints added by the observatory.
// myBreakpointHandler.vmBreakpointAdded(null, event.getIsolate().getId(), event.getBreakpoint());
break;
case BreakpointRemoved:
break;
case BreakpointResolved:
myBreakpointHandler.breakpointResolved(event.getBreakpoint());
break;
case Extension:
break;
case GC:
break;
case Inspect:
break;
case IsolateStart:
break;
case IsolateRunnable:
myDebugProcess.getVmServiceWrapper().handleIsolate(event.getIsolate(), false);
break;
case IsolateReload:
break;
case IsolateUpdate:
break;
case IsolateExit:
myDebugProcess.isolateExit(event.getIsolate());
break;
case PauseBreakpoint:
case PauseException:
case PauseInterrupted:
myDebugProcess.isolateSuspended(event.getIsolate());
ApplicationManager.getApplication().executeOnPooledThread(() -> {
final ElementList<Breakpoint> breakpoints = event.getKind() == EventKind.PauseBreakpoint ? event.getPauseBreakpoints() : null;
final InstanceRef exception = event.getKind() == EventKind.PauseException ? event.getException() : null;
onIsolatePaused(event.getIsolate(), breakpoints, exception, event.getTopFrame(), event.getAtAsyncSuspension());
});
break;
case PausePostRequest:
// We get this event after an isolate reload call, when pause after reload has been requested.
// This adds the "supports.pausePostRequest" capability.
myDebugProcess.getVmServiceWrapper().restoreBreakpointsForIsolate(event.getIsolate().getId(),
() -> myDebugProcess.getVmServiceWrapper()
.resumeIsolate(event.getIsolate().getId(), null));
break;
case PauseExit:
break;
case PauseStart:
myDebugProcess.getVmServiceWrapper().handleIsolate(event.getIsolate(), true);
break;
case Resume:
myDebugProcess.isolateResumed(event.getIsolate());
break;
case ServiceExtensionAdded:
break;
case ServiceRegistered:
break;
case ServiceUnregistered:
break;
case VMUpdate:
break;
case WriteEvent:
myDebugProcess.handleWriteEvent(event.getBytes());
break;
case None:
break;
case Unknown:
break;
}
}