Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1980)

Unified Diff: runtime/vm/service/protocol.md

Issue 1159553006: Add service.md. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | runtime/vm/service/service.idl » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: runtime/vm/service/protocol.md
diff --git a/runtime/vm/service/protocol.md b/runtime/vm/service/protocol.md
deleted file mode 100644
index 71b2da13d0664cf98bd2428b60d61752d7d1dfcd..0000000000000000000000000000000000000000
--- a/runtime/vm/service/protocol.md
+++ /dev/null
@@ -1,542 +0,0 @@
-# Dart VM Service Protocol
-
-NOTE: The service api is still changing rapidly. If you use the
-service api, expect to encounter non-compatible changes.
-
-Description
-How to start
-JSON
-Websocket
-
-## Types
-
-Every response returned by the VM Service has the <code>type</code>
-property. This allows the client distinguish between different kinds
-of responses. For example, global information about the VM is encoded
-in an response of type [VM](#VM) and information about an isolate is
-encoded in an response of type [Isolate](#Isolate).
-
-If the type name of a response begins with an <code>@</code> character
-then that response is a _reference_. If the type name of a response
-does not begin with an <code>@</code> character then that response is
-an _object_ (or sometimes _full object_). A reference is meant to be
-a subset of a full object with just enough information for the client
-to generate a reasonable-looking link.
-
-For example, an isolate reference may look like this...
-
- {
- type: "@Isolate",
- id: "isolates/123",
- name: "worker"
- }
-
-... and a full isolate object would have additional properties:
-
- {
- type: "Isolate",
- id: "isolates/123",
- name: "worker"
- entry: ...
- heaps: ...
- topFrame: ...
- ...
- }
-
-## Type Hierarchy
-
-The types returned by the VM Service fit into a type hierarchy, with a
-subtyping relationship as indicated by the following indented list:
-
-<pre>
-Object
- ClassHeapStats
- Class
- Code
- Context
- Counter
- Error
- Field
- FrameVar
- Frame
- Function
- Gauge
- Instance
- AbstractType
- BoundedType
- TypeParameter
- TypeRef
- Type
- List
- Sentinel // TODO - subtype of Instance or not?
- String
- bool
- double
- int
- null
- Isolate
- Library
- Location
- Script
- ServiceError
- ServiceEvent
- Socket
- TypeArguments // TODO - expose?
- VM
-</pre>
-
-TODO: How to put links in a pre in markdown?
-
-A subtype is guaranteed to provide all of the properties of its
-parent type. For example, an [int](#int) can be used as an
-[Instance](#Instance).
-
-The subtyping relationship also holds for reference types. For
-example, [@int](#int) can be used as an [@Instance](#Instance).
-
-## IDs
-
-Most responses returned by the VM Service have an <code>id</code>
-property. An id is used to request an object from the VM. Each id is
-unique; that is to say, If two responses have the same id, they refer
-to the same object. The converse is not true: the same object may
-occasionally be returned with two different ids.
-
-An id is either _global_ or _relative_. Global ids can be requested
-from the VM directly by requesting the uri <code>/{global id}</code>.
-
-The following is a list of known, fixed global ids:
-
-| id | uri | type
-| --- | --- | ---
-| vm | /vm | [VM](#VM)
-| flags | /flags | [FlagList](#FlagList)
-
-In addition, all isolates have global ids, but these ids are
-dynamically generated. An isolate with an id like
-<code>isolates/123</code> would be available at the uri
-<code>/isolates/123</code>.
-
-Relative ids are used to refer to objects that are owned by an
-isolate. Relative ids can be requested from the VM directly by
-requesting the uri <code>/{isolate&nbsp;id}/{relative&nbsp;id}</code>.
-
-For example, we can get information about a class with id
-<code>classes/Foo</code> from isolate <code>isolates/123</code> by
-requesting the uri <code>/isolates/123/classes/Foo</code> from the VM.
-
-The client must not parse ids -- they must be treated as opaque
-strings. We reserve the right to change the ids of objects.
-
-## Names
-
-Many responses have the <code>name</code> property. Names are
-provided so that objects can be displayed in a way that a Dart
-language programmer would find sensible.
-
-Note that names are not in any way unique. Many objects will have the
-same name.
-
-## Private Properties
-
-Some properties returned by the VM Service begin with an underscore
-(<code>_</code>) character. These properties are called _private
-properties_. Private properties provide private information about the
-VM's implementation. Private properties may be added, removed, or
-changed at any time with any release of the VM. They are provided for
-those tools that need this level of internal access, such as the
-Observatory.
-
-For example, some responses will have the <code>_vmType</code>
-property. This provides the VM-internal type name of an object, and
-is provided only when this type name differs from the
-<code>type</code> property.
-
-## Events
-
-TODO
-
-## Catalog of Types
-
-### <a name="AbstractType"></a>AbstractType
-
-### <a name="Breakpoint"></a>Breakpoint
-
-TODO: Get rid of Location or else use it more generally.
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "Breakpoint" |
-| id | String |
-| breakpointNumber | int |
-| enabled | bool |
-| resolved | bool |
-| location | [Location](#Location) |
-
-### <a name="Class"></a>Class
-
-Reference properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "@Class", "Class" |
-| id | String |
-| name | String |
-| _vmName? | String |
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| error? | [Error](#Error) | Error encountered during class finalization
-| implemented | bool |
-| abstract | bool |
-| patch | bool |
-| finalized | bool |
-| const | bool |
-| super? | [@Class](#Class) | Super class
-| library | [@Library](#Library) | Owning library
-| script? | [@Script](#Script) | Script containing class source
-| tokenPos? | int | starting token position of class source in script
-| endTokenPos? | int | end token position of class source in script
-| interfaces | List of [@Class](#Class) | interfaces this class has implemented
-| fields | List of [@Field](#Field) |
-| functions | List of [@Function](#Function) |
-| subclasses | List of [@Class](#Class) | classes which extend this class.
-| canonicalTypes | [@TypeList] | kill?
-| allocationStats | ClassHeapStats |
-
-### <a name="ClassHeapStats"></a>ClassHeapStats
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "ClassHeapStats" |
-| id | String |
-| class | [@Class](#Class) |
-| new | List of int | Allocation statistics for new space. See note below on allocation statistics list format.
-| old | List of int | Allocation statistics for old space. See note below on allocation statistics list format.
-| promotedInstances | int | number of instances promoted at last new-space GC.
-| promotedBytes | int | number of bytes promoted at last new-space GC.
-
-*Allocation statistics list format*
-
-| index | value | description
-| --- | --- | --- |
-| 0 | int | Instances allocated before last GC |
-| 1 | int | Bytes allocated before last GC |
-| 2 | int | Instances alive after last GC |
-| 3 | int | Bytes alive after last GC |
-| 4 | int | Instances allocated since last GC |
-| 5 | int | Bytes allocated since last GC |
-| 6 | int | Instances allocated since last accumulator reset |
-| 7 | int | Bytes allocated since last accumulator reset |
-
-### <a name="Code"></a>Code
-
-Reference properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "@Code", "Code"|
-| id | String |
-| name | String |
-| _vmName? | String |
-| start | String | starting address of code
-| end | String | ending address of code
-| isOptimized | bool |
-| isAlive | bool |
-| kind | String
-| function | [@Function](#Function) |
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| start | String | starting address of code
-| end | String | ending address of code
-| isOptimized | bool |
-| isAlive | bool |
-| kind | String
-| function | [@Function](#Function) |
-| object_pool | List of [@Object](#Object) |
-| disassembly | List of String | See note below on disassembly list format
-
-*Disassembly list format*
-
-| index | value | description
-| --- | --- | --- |
-| 0 | String | Address of instruction
-| 1 | String | Hex encoding of instruction
-| 2 | String | Human encoding of instruction
-| 0 + (3 * K) | String | Address of Kth instruction
-| 1 + (3 * K) | String | Hex encoding of instruction of Kth instruction
-| 2 + (3 * K) | String | Human encoding of instruction of Kth instruction
-
-### <a name="Error"></a>Error
-
-TODO: Drop id from Error.<br>
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "Error" |
-| _vmType? | String | VM internal name for this type. Provided only when different from 'type'
-| id | String | always empty
-| kind | String |
-| message | String |
-
-### <a name="Field"></a>Field
-
-Reference properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "@Field", "Field" |
-| id | String |
-| name | String |
-| _vmName? | String |
-| value? | Instance | value associated with static field <-- do we want to include this in a field reference?
-| owner | [@Library](#Library),[@Class](#Class) | Owning library or class <-- handling of owner is inconsistent with Function
-| declared_type | [@AbstractType](#AbstractType) |
-| static | bool |
-| final | bool |
-| const | bool |
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| guard_nullable | bool | can this field hold a null?
-| guard_class | String OR [@Class](#Class) | "unknown", "dynamic", or a class
-| guard_length | String OR int | "unknown", "variable", or length of array
-| script? | [@Script](#Script) | Script containing field source
-| tokenPos? | int | starting token position of field source in script
-
-### <a name="Frame"></a>Frame
-
-TODO: Add type and id?<br>
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| script | [@Script](#Script) |
-| tokenPos | int |
-| function | [@Function](#Function) |
-| code | [@Code](#Code) |
-| vars | List of [FrameVar](#FrameVar) |
-
-### <a name="FrameVar"></a>FrameVar
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| name | String |
-| value | [@Instance](#Instance) |
-
-### <a name="Function"></a>Function
-
-Reference properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "@Function", "Function" |
-| id | String |
-| name | String |
-| _vmName? | String |
-| owningLibrary? | [@Library](#Library) | Set for non-top level functions
-| owningClass? | [@Class](#Class) | Set for non-top level functions
-| parent? | [@Function](#Function) | Parent function
-| kind | String |
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| static | bool | TODO: not consistent with Field
-| const | bool |
-| optimizable | bool |
-| inlinable | bool |
-| usage_counter | int |
-| optimized_call_site_count | int |
-| deoptimizations | int |
-| script? | [@Script](#Script) | Script containing function source
-| tokenPos? | int | starting token position of function source in script
-| endTokenPos? | int | end token position of function source in script
-| unoptimized_code | [@Code](#Code) |
-| code | [@Code](#Code) | Current code
-
-### <a name="Isolate"></a>Isolate
-
-Reference properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "@Isolate", "Isolate" |
-| id | String |
-| mainPort | String | kill? |
-| name | String |
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| entry? | [@Function](#Function) |
-| heaps | ??? |
-| topFrame? | [Frame](#Frame) |
-| livePorts | int |
-| pauseOnExit | bool |
-| pauseEvent? | [DebuggerEvent](#DebuggerEvent) |
-| rootLib | [@Library](#Library) |
-| timers | ??? |
-| tagCounters | ??? |
-| error? | [Error](#Error) |
-| canonicalTypeArguments | | kill? |
-| libs | List of [@Library](#Library) |
-| features | List of String |
-
-### <a name="Library"></a>Library
-
-Reference properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "@Library", "Library" |
-| id | String |
-| name | String |
-| _vmName? | String | VM-internal name. Provided only when different from 'name'.
-| url | String
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| classes | List of [@Class](#Class) |
-| imports | List of [@Library](#Library) |
-| variables | List of ... |
-| functions | List of [@Function](#Function) |
-| scripts | List of [@Script](#Script) |
-
-### <a name="Location"></a>Location
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "Location" |
-| script | [@Script](#Script) |
-| tokenPos | int |
-
-### <a name="null"></a>null
-
-Reference properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "@null", "null" |
-| id | String | |
-| valueAsString | String |
-
-Object properties:<br>
-
-TODO.
-
-### <a name="Object"></a>Object
-
-[Object](#Object) is the supertype of all responses returned by the VM
-Service. It does not necessarily refer to an Object at the Dart
-language level (see [Instance](#Instance)).
-
-Reference properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "@Object", "Object" or subtype |
-| _vmType? | String | VM internal name for this type. Provided only when different from 'type'
-| id | String |
-
-Object properties: none<br>
-
-### <a name="PcDescriptor"></a>PcDescriptor
-
-### <a name="Script"></a>Script
-
-Reference properties:
-
-| keys | values | comments | example |
-| --- | --- | ---
-| type | "@Script", "Script" |
-| id | String
-| name | String
-| _vmName? | String | VM-internal name. Provided only when different from 'name'.
-| kind | String
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| owningLibrary | [@Library](#Library)
-| source | String
-| tokenPosTable | List of list of int. See note below about token line format.
-
-*Token line format*
-
-| index | value | comments
-| --- | --- | ---
-| 0 | int | line number
-| 1 | int | first token position
-| 2 | int | first column number
-| ... | ... | ...
-| 1 + (2 * k) | int | kth token position
-| 2 + (2 * k) | int | kth column number
-
-### <a name="Sentinel"></a>Sentinel
-
-TODO: Enumerate known Sentinels<br>
-TODO: Should this even have an id? Maybe a *kind* instead.<br><br>
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "Sentinel" |
-| id | String | |
-| valueAsString | String |
-
-### <a name="ServiceEvent"></a>ServiceEvent
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "ServiceEvent" |
-| id | String | TODO: Remove |
-| eventType | String | "BreakpointReached", "BreakpointResolved", "ExceptionThrown", "IsolateCreated", "IsolateShutdown", "IsolateInterrupted" |
-| isolate | [@Isolate](#Isolate) |
-| breakpoint? | [Breakpoint](#Breakpoint) | for eventTypes "BreakpointResolved" and "BreakpointReached<br><br>TODO: Maybe make this @Breakpoint?
-| exception? | [@Instance](#Instance) | for eventType "ExceptionThrown"
-
-### <a name="VM"></a>VM
-
-Object properties:
-
-| keys | values | comments
-| --- | --- | ---
-| type | "VM" |
-| id | String |
-| targetCPU | String |
-| hostCPU | String |
-| date | String | kill? |
-| version | String |
-| pid | int |
-| assertsEnabled | bool | TODO: move to features? |
-| typeChecksEnabled | bool | TODO: move to features? |
-| uptime | double | seconds since vm started |
-| "isolates" | List of [@Isolate](#Isolate) |
-
« no previous file with comments | « no previous file | runtime/vm/service/service.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698