VmService class

Available extensions

Constructors

VmService(Stream inStream, void writeMessage(String message), {Log? log, DisposeHandler? disposeHandler, Future? streamClosed, String? wsUri})

Properties

hashCode int
The hash code for this object.
no setterinherited
onDebugEvent Stream<Event>
no setter
onDone Future<void>
no setter
onExtensionEvent Stream<Event>
no setter
onGCEvent Stream<Event>
no setter
onHeapSnapshotEvent Stream<Event>
no setter
onIsolateEvent Stream<Event>
no setter
onLoggingEvent Stream<Event>
no setter
onProfilerEvent Stream<Event>
no setter
onReceive Stream<String>
no setter
onSend Stream<String>
no setter
onServiceEvent Stream<Event>
no setter
onStderrEvent Stream<Event>
no setter
onStdoutEvent Stream<Event>
no setter
onTimelineEvent Stream<Event>
no setter
onVMEvent Stream<Event>
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
wsUri String?
The web socket URI pointing to the target VM service instance.
final

Methods

addBreakpoint(String isolateId, String scriptId, int line, {int? column}) Future<Breakpoint>
The addBreakpoint RPC is used to add a breakpoint at a specific line of some script.
addBreakpointAtEntry(String isolateId, String functionId) Future<Breakpoint>
The addBreakpointAtEntry RPC is used to add a breakpoint at the entrypoint of some function.
addBreakpointWithScriptUri(String isolateId, String scriptUri, int line, {int? column}) Future<Breakpoint>
The addBreakpoint RPC is used to add a breakpoint at a specific line of some script. This RPC is useful when a script has not yet been assigned an id, for example, if a script is in a deferred library which has not yet been loaded.
callMethod(String method, {String? isolateId, Map<String, dynamic>? args}) Future<Response>
Call an arbitrary service protocol method. This allows clients to call methods not explicitly exposed by this library.
callServiceExtension(String method, {String? isolateId, Map<String, dynamic>? args}) Future<Response>
Invoke a specific service protocol extension method.
clearCpuSamples(String isolateId) Future<Success>
Clears all CPU profiling samples.
clearHttpProfile(String isolateId) Future<Success>

Available on VmService, provided by the DartIOExtension extension

The clearHttpProfile RPC is used to clear previously recorded HTTP requests from the HTTP profiler state. Requests still in-flight after clearing the profiler state will be ignored by the profiler.
clearSocketProfile(String isolateId) Future<Success>

Available on VmService, provided by the DartIOExtension extension

Removes all statistics associated with prior and current sockets.
clearVMTimeline() Future<Success>
Clears all VM timeline events.
createIdZone(String isolateId, String backingBufferKind, String idAssignmentPolicy, {int? capacity}) Future<IdZone>
The createIdZone RPC is used to create a new ID zone where temporary IDs for instances in the specified isolate may be allocated. See IDs and Names for more information about ID zones.
deleteIdZone(String isolateId, String idZoneId) Future<Success>
The deleteIdZone RPC frees the buffer that backs the specified ID zone, and makes that zone unusable for the remainder of the program's execution. For performance reasons, clients should aim to call invalidateIdZone and reuse existing zones as much as possible instead of deleting zones and then creating new ones.
dispose() Future<void>
evaluate(String isolateId, String targetId, String expression, {Map<String, String>? scope, bool? disableBreakpoints, String? idZoneId}) Future<Response>
The evaluate RPC is used to evaluate an expression in the context of some target.
evaluateInFrame(String isolateId, int frameIndex, String expression, {Map<String, String>? scope, bool? disableBreakpoints, String? idZoneId}) Future<Response>
The evaluateInFrame RPC is used to evaluate an expression in the context of a particular stack frame. frameIndex is the index of the desired Frame, with an index of 0 indicating the top (most recent) frame.
getAllocationProfile(String isolateId, {bool? reset, bool? gc}) Future<AllocationProfile>
The getAllocationProfile RPC is used to retrieve allocation information for a given isolate.
getAllocationTraces(String isolateId, {int? timeOriginMicros, int? timeExtentMicros, String? classId}) Future<CpuSamples>
The getAllocationTraces RPC allows for the retrieval of allocation traces for objects of a specific set of types (see VmService.setTraceClassAllocation). Only samples collected in the time range [timeOriginMicros, timeOriginMicros + timeExtentMicros] will be reported.
getClassList(String isolateId) Future<ClassList>
The getClassList RPC is used to retrieve a ClassList containing all classes for an isolate based on the isolate's isolateId.
getCpuSamples(String isolateId, int timeOriginMicros, int timeExtentMicros) Future<CpuSamples>
The getCpuSamples RPC is used to retrieve samples collected by the CPU profiler. See CpuSamples for a detailed description of the response.
getDartIOVersion(String isolateId) Future<Version>

Available on VmService, provided by the DartIOExtension extension

The getDartIOVersion RPC returns the available version of the dart:io service protocol extensions.
getFlagList() Future<FlagList>
The getFlagList RPC returns a list of all command line flags in the VM along with their current values.
getHttpProfile(String isolateId, {DateTime? updatedSince}) Future<HttpProfile>

Available on VmService, provided by the DartIOExtension extension

The getHttpProfile RPC is used to retrieve HTTP profiling information for requests made via dart:io's HttpClient.
getHttpProfileRequest(String isolateId, String id) Future<HttpProfileRequest>

Available on VmService, provided by the DartIOExtension extension

The getHttpProfileRequest RPC is used to retrieve an instance of HttpProfileRequest, which includes request and response body data.
getInboundReferences(String isolateId, String targetId, int limit, {String? idZoneId}) Future<InboundReferences>
Returns a set of inbound references to the object specified by targetId. Up to limit references will be returned.
getInstances(String isolateId, String objectId, int limit, {bool? includeSubclasses, bool? includeImplementers, String? idZoneId}) Future<InstanceSet>
The getInstances RPC is used to retrieve a set of instances which are of a specific class.
getInstancesAsList(String isolateId, String objectId, {bool? includeSubclasses, bool? includeImplementers, String? idZoneId}) Future<InstanceRef>
The getInstancesAsList RPC is used to retrieve a set of instances which are of a specific class. This RPC returns an InstanceRef corresponding to a Dart List<dynamic> that contains the requested instances. This List is not growable, but it is otherwise mutable. The response type is what distinguishes this RPC from getInstances, which returns an InstanceSet.
getIsolate(String isolateId) Future<Isolate>
The getIsolate RPC is used to lookup an Isolate object by its id.
getIsolateGroup(String isolateGroupId) Future<IsolateGroup>
The getIsolateGroup RPC is used to lookup an IsolateGroup object by its id.
getIsolateGroupMemoryUsage(String isolateGroupId) Future<MemoryUsage>
The getIsolateGroupMemoryUsage RPC is used to lookup an isolate group's memory usage statistics by its id.
getIsolatePauseEvent(String isolateId) Future<Event>
The getIsolatePauseEvent RPC is used to lookup an isolate's pause event by its id.
getMemoryUsage(String isolateId) Future<MemoryUsage>
The getMemoryUsage RPC is used to lookup an isolate's memory usage statistics by its id.
getObject(String isolateId, String objectId, {int? offset, int? count, String? idZoneId}) Future<Obj>
The getObject RPC is used to lookup an object from some isolate by its id.
getOpenFileById(String isolateId, int id) Future<OpenFile>

Available on VmService, provided by the DartIOExtension extension

The getOpenFileById RPC is used to retrieve information about files currently opened by dart:io from a given isolate.
getOpenFiles(String isolateId) Future<OpenFileList>

Available on VmService, provided by the DartIOExtension extension

The getOpenFiles RPC is used to retrieve the list of files currently opened files by dart:io from a given isolate.
getPerfettoCpuSamples(String isolateId, {int? timeOriginMicros, int? timeExtentMicros}) Future<PerfettoCpuSamples>
The getPerfettoCpuSamples RPC is used to retrieve samples collected by the CPU profiler, serialized in Perfetto's proto format. See PerfettoCpuSamples for a detailed description of the response.
getPerfettoVMTimeline({int? timeOriginMicros, int? timeExtentMicros}) Future<PerfettoTimeline>
The getPerfettoVMTimeline RPC is used to retrieve an object which contains a VM timeline trace represented in Perfetto's proto format. See PerfettoTimeline for a detailed description of the response.
getPorts(String isolateId) Future<PortList>
The getPorts RPC is used to retrieve the list of ReceivePort instances for a given isolate.
getProcessMemoryUsage() Future<ProcessMemoryUsage>
Returns a description of major uses of memory known to the VM.
getRetainingPath(String isolateId, String targetId, int limit, {String? idZoneId}) Future<RetainingPath>
The getRetainingPath RPC is used to lookup a path from an object specified by targetId to a GC root (i.e., the object which is preventing this object from being garbage collected).
getScripts(String isolateId) Future<ScriptList>
The getScripts RPC is used to retrieve a ScriptList containing all scripts for an isolate based on the isolate's isolateId.
getSocketProfile(String isolateId) Future<SocketProfile>

Available on VmService, provided by the DartIOExtension extension

The getSocketProfile RPC is used to retrieve socket statistics collected by the socket profiler. Only samples collected after the initial socketProfilingEnabled call or the last call to clearSocketProfile will be reported.
getSourceReport(String isolateId, List<String> reports, {String? scriptId, int? tokenPos, int? endTokenPos, bool? forceCompile, bool? reportLines, List<String>? libraryFilters, List<String>? librariesAlreadyCompiled}) Future<SourceReport>
The getSourceReport RPC is used to generate a set of reports tied to source locations in an isolate.
getSpawnedProcessById(String isolateId, int id) Future<SpawnedProcess>

Available on VmService, provided by the DartIOExtension extension

The getSpawnedProcessById RPC is used to retrieve information about a process spawned by dart:io from a given isolate.
getSpawnedProcesses(String isolateId) Future<SpawnedProcessList>

Available on VmService, provided by the DartIOExtension extension

The getSpawnedProcesses RPC is used to retrieve the list of processed opened by dart:io from a given isolate
getStack(String isolateId, {int? limit, String? idZoneId}) Future<Stack>
The getStack RPC is used to retrieve the current execution stack and message queue for an isolate. The isolate does not need to be paused.
getSupportedProtocols() Future<ProtocolList>
The getSupportedProtocols RPC is used to determine which protocols are supported by the current server.
getVersion() Future<Version>
The getVersion RPC is used to determine what version of the Service Protocol is served by a VM.
getVM() Future<VM>
The getVM RPC returns global information about a Dart virtual machine.
getVMTimeline({int? timeOriginMicros, int? timeExtentMicros}) Future<Timeline>
The getVMTimeline RPC is used to retrieve an object which contains VM timeline events. See Timeline for a detailed description of the response.
getVMTimelineFlags() Future<TimelineFlags>
The getVMTimelineFlags RPC returns information about the current VM timeline configuration.
getVMTimelineMicros() Future<Timestamp>
The getVMTimelineMicros RPC returns the current time stamp from the clock used by the timeline, similar to Timeline.now in dart:developer and Dart_TimelineGetMicros in the VM embedding API.
httpEnableTimelineLogging(String isolateId, [bool? enabled]) Future<HttpTimelineLoggingState>

Available on VmService, provided by the DartIOExtension extension

The httpEnableTimelineLogging RPC is used to set and inspect the value of HttpClient.enableTimelineLogging, which determines if HTTP client requests should be logged to the timeline. If enabled is provided, the state of HttpClient.enableTimelineLogging will be updated to the value of enabled.
invalidateIdZone(String isolateId, String idZoneId) Future<Success>
The invalidateIdZone RPC is used to invalidate all the IDs that have been allocated in a certain ID zone. Invaliding the IDs makes them expire. See IDs and Names for more information.
invoke(String isolateId, String targetId, String selector, List<String> argumentIds, {bool? disableBreakpoints, String? idZoneId}) Future<Response>
The invoke RPC is used to perform regular method invocation on some receiver, as if by dart:mirror's ObjectMirror.invoke. Note this does not provide a way to perform getter, setter or constructor invocation.
isHttpProfilingAvailable(String isolateId) Future<bool>

Available on VmService, provided by the DartIOExtension extension

Whether HTTP profiling is available for the given isolateId.
isHttpTimelineLoggingAvailable(String isolateId) Future<bool>

Available on VmService, provided by the DartIOExtension extension

Whether HTTP timeline logging is available for the given isolateId.
isSocketProfilingAvailable(String isolateId) Future<bool>

Available on VmService, provided by the DartIOExtension extension

Whether socket profiling is available for the given isolateId.
kill(String isolateId) Future<Success>
The kill RPC is used to kill an isolate as if by dart:isolate's Isolate.kill(IMMEDIATE).
lookupPackageUris(String isolateId, List<String> uris) Future<UriList>
The lookupPackageUris RPC is used to convert a list of URIs to their unresolved paths. For example, URIs passed to this RPC are mapped in the following ways:
lookupResolvedPackageUris(String isolateId, List<String> uris, {bool? local}) Future<UriList>
The lookupResolvedPackageUris RPC is used to convert a list of URIs to their resolved (or absolute) paths. For example, URIs passed to this RPC are mapped in the following ways:
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
onEvent(String streamId) Stream<Event>
pause(String isolateId) Future<Success>
The pause RPC is used to interrupt a running isolate. The RPC enqueues the interrupt request and potentially returns before the isolate is paused.
registerService(String service, String alias) Future<Success>
Registers a service that can be invoked by other VM service clients, where service is the name of the service to advertise and alias is an alternative name for the registered service.
registerServiceCallback(String service, ServiceCallback cb) → void
Register a service for invocation.
reloadSources(String isolateId, {bool? force, bool? pause, String? rootLibUri, String? packagesUri}) Future<ReloadReport>
The reloadSources RPC is used to perform a hot reload of the sources of all isolates in the same isolate group as the isolate specified by isolateId.
removeBreakpoint(String isolateId, String breakpointId) Future<Success>
The removeBreakpoint RPC is used to remove a breakpoint by its id.
requestHeapSnapshot(String isolateId) Future<Success>
Requests a dump of the Dart heap of the given isolate.
resume(String isolateId, {String? step, int? frameIndex}) Future<Success>
The resume RPC is used to resume execution of a paused isolate.
setBreakpointState(String isolateId, String breakpointId, bool enable) Future<Breakpoint>
The setBreakpointState RPC allows for breakpoints to be enabled or disabled, without requiring for the breakpoint to be completely removed.
setExceptionPauseMode(String isolateId, String mode) Future<Success>
The setExceptionPauseMode RPC is used to control if an isolate pauses when an exception is thrown.
setFlag(String name, String value) Future<Response>
The setFlag RPC is used to set a VM flag at runtime. Returns an error if the named flag does not exist, the flag may not be set at runtime, or the value is of the wrong type for the flag.
setIsolatePauseMode(String isolateId, {String? exceptionPauseMode, bool? shouldPauseOnExit}) Future<Success>
The setIsolatePauseMode RPC is used to control if or when an isolate will pause due to a change in execution state.
setLibraryDebuggable(String isolateId, String libraryId, bool isDebuggable) Future<Success>
The setLibraryDebuggable RPC is used to enable or disable whether breakpoints and stepping work for a given library.
setName(String isolateId, String name) Future<Success>
The setName RPC is used to change the debugging name for an isolate.
setTraceClassAllocation(String isolateId, String classId, bool enable) Future<Success>
The setTraceClassAllocation RPC allows for enabling or disabling allocation tracing for a specific type of object. Allocation traces can be retrieved with the getAllocationTraces RPC.
setVMName(String name) Future<Success>
The setVMName RPC is used to change the debugging name for the vm.
setVMTimelineFlags(List<String> recordedStreams) Future<Success>
The setVMTimelineFlags RPC is used to set which timeline streams are enabled.
socketProfilingEnabled(String isolateId, [bool? enabled]) Future<SocketProfilingState>

Available on VmService, provided by the DartIOExtension extension

The socketProfilingEnabled RPC is used to enable/disable the socket profiler and query its current state. If enabled is provided, the profiler state will be updated to reflect the value of enabled.
streamCancel(String streamId) Future<Success>
The streamCancel RPC cancels a stream subscription in the VM.
streamCpuSamplesWithUserTag(List<String> userTags) Future<Success>
The streamCpuSamplesWithUserTag RPC allows for clients to specify which CPU samples collected by the profiler should be sent over the Profiler stream. When called, the VM will stream CpuSamples events containing CpuSample's collected while a user tag contained in userTags was active.
streamListen(String streamId) Future<Success>
The streamListen RPC subscribes to a stream in the VM. Once subscribed, the client will begin receiving events from the stream.
toString() String
A string representation of this object.
inherited
wrapFuture<T>(String name, Future<T> future) Future<T>
When overridden, this method wraps future with logic.

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

defaultFactory({required Stream inStream, required void writeMessage(String message), Log? log, DisposeHandler? disposeHandler, Future? streamClosed, String? wsUri}) VmService