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

Side by Side Diff: runtime/vm/service/protocol.md

Issue 467183004: Add more types to service/protocol.md (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: alphabetize Created 6 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Dart VM Service Protocol 1 # Dart VM Service Protocol
2 2
3 NOTE: The service api is still changing rapidly. If you use the
4 service api, expect to encounter non-compatible changes.
5
3 Description 6 Description
4 How to start 7 How to start
5 JSON 8 JSON
6 Websocket 9 Websocket
7 10
8 ## Types 11 ## Types
9 12
10 Every response returned by the VM Service has the <code>type</code> property. T his allows the client distinguish between different kinds of responses. For exa mple, 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). 13 Every response returned by the VM Service has the <code>type</code>
14 property. This allows the client distinguish between different kinds
15 of responses. For example, global information about the VM is encoded
16 in an response of type [VM](#VM) and information about an isolate is
17 encoded in an response of type [Isolate](#Isolate).
11 18
12 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 _ful l object_). A reference is meant to be a subset of a full object with just enou gh information for the client to generate a reasonable-looking link. 19 If the type name of a response begins with an <code>@</code> character
20 then that response is a _reference_. If the type name of a response
21 does not begin with an <code>@</code> character then that response is
22 an _object_ (or sometimes _full object_). A reference is meant to be
23 a subset of a full object with just enough information for the client
24 to generate a reasonable-looking link.
13 25
14 For example, an isolate reference may look like this... 26 For example, an isolate reference may look like this...
15 27
16 { 28 {
17 type: "@Isolate", 29 type: "@Isolate",
18 id: "isolates/123", 30 id: "isolates/123",
19 name: "worker" 31 name: "worker"
20 } 32 }
21 33
22 ... and a full isolate object would have additional properties: 34 ... and a full isolate object would have additional properties:
23 35
24 { 36 {
25 type: "@Isolate", 37 type: "Isolate",
26 id: "isolates/123", 38 id: "isolates/123",
27 name: "worker" 39 name: "worker"
28 entry: ... 40 entry: ...
29 heaps: ... 41 heaps: ...
30 topFrame: ... 42 topFrame: ...
31 ... 43 ...
32 } 44 }
33 45
34 ## IDs 46 ## IDs
35 47
36 Most responses returned by the VM Service have an <code>id</code> property. An id is used to request an object from the VM. 48 Most responses returned by the VM Service have an <code>id</code>
49 property. An id is used to request an object from the VM. Each id is
50 unique; that is to say, If two responses have the same id, they refer
51 to the same object. The converse is not true: the same object may
52 occasionally be returned with two different ids.
37 53
38 An id is either _global_ or _relative_. Global ids can be requested from the VM directly by requesting the uri <code>/{global id}</code>. 54 An id is either _global_ or _relative_. Global ids can be requested
55 from the VM directly by requesting the uri <code>/{global id}</code>.
39 56
40 The following is a list of known, fixed global ids: 57 The following is a list of known, fixed global ids:
41 58
42 | id | uri | type 59 | id | uri | type
43 | --- | --- | --- 60 | --- | --- | ---
44 | vm | /vm | [VM](#VM) 61 | vm | /vm | [VM](#VM)
45 | flags | /flags | [FlagList](#FlagList) 62 | flags | /flags | [FlagList](#FlagList)
46 63
47 In addition, all isolates have global ids, but these ids are dynamically generat ed. An isolate with an id like <code>isolates/123</code> would be available at the uri <code>/isolates/123</code>. 64 In addition, all isolates have global ids, but these ids are
65 dynamically generated. An isolate with an id like
66 <code>isolates/123</code> would be available at the uri
67 <code>/isolates/123</code>.
48 68
49 Relative ids are used to refer to objects that are owned by an isolate. Relativ e ids can be requested from the VM directly by requesting the uri <code>/{isolat e&nbsp;id}/{relative&nbsp;id}</code>. 69 Relative ids are used to refer to objects that are owned by an
70 isolate. Relative ids can be requested from the VM directly by
71 requesting the uri <code>/{isolate&nbsp;id}/{relative&nbsp;id}</code>.
50 72
51 For example, we can get information about a class with id <code>classes/Foo</cod e> from isolate <code>isolates/123</code> by requesting the uri <code>/isolates/ 123/classes/Foo</code> from the VM. 73 For example, we can get information about a class with id
74 <code>classes/Foo</code> from isolate <code>isolates/123</code> by
75 requesting the uri <code>/isolates/123/classes/Foo</code> from the VM.
52 76
53 The client must not parse ids -- they must be treated as opaque strings. We res erve the right to change the ids of objects. 77 The client must not parse ids -- they must be treated as opaque
78 strings. We reserve the right to change the ids of objects.
79
80 ## Names
81
82 Many responses have the <code>name</code> property. Names are
83 provided so that objects can be displayed in a way that a Dart
84 language programmer would find sensible.
85
86 Note that names are not in any way unique. Many objects will have the
87 same name.
88
89 Occasionally responses will have the <code>vmName</code> property.
90 This represents the internal names used to refer to an object inside
91 the VM itself. The <code>vmName</code> of an object is only provided
92 when it differs from the <code>name</code> property; when
93 <code>vmName</code> is not present, the client may assume the
94 <code>name</code> and <code>vmName</code> are the same.
54 95
55 ## Events 96 ## Events
56 97
57 TODO 98 TODO
58 99
59 ## Catalog of Types 100 ## Catalog of Types
60 ### <a name="VM"></a>VM 101
102 ### <a name="atAbstractType"></a>@AbstractType
103
104 ### <a name="AbstractType"></a>AbstractType
105
106 ### <a name="Breakpoint"></a>Breakpoint
107
108 TODO: Get rid of Location or else use it more generally.
61 109
62 | keys | values | comments 110 | keys | values | comments
63 | --- | --- | --- 111 | --- | --- | ---
64 | type | "VM" | 112 | type | "Breakpoint" |
65 | id | String | 113 | id | String |
66 | targetCPU | String | 114 | breakpointNumber | int |
67 | hostCPU | String | 115 | enabled | bool |
68 | date | String | kill? | 116 | resolved | bool |
69 | version | String | 117 | location | [Location](#Location) |
70 | pid | int |
71 | assertsEnabled | bool | TODO: move to features? |
72 | typeChecksEnabled | bool | TODO: move to features? |
73 | uptime | double | seconds since vm started |
74 | "isolates" | List of [@Isolate](#atIsolate) |
75
76 ### <a name="atIsolate"></a>@Isolate
77
78 | keys | values | comments
79 | --- | --- | ---
80 | type | "@Isolate" |
81 | id | String |
82 | mainPort | String | kill? |
83 | name | String |
84
85 ### Isolate
86
87 | keys | values | comments
88 | --- | --- | ---
89 | type | "Isolate" |
90 | id | String |
91 | mainPort | String | kill? |
92 | name | String |
93 | entry? | [@Function](#atFunction) |
94 | heaps | ??? |
95 | topFrame? | [Frame](#Frame) |
96 | livePorts | int |
97 | pauseOnExit | bool |
98 | pauseEvent? | [DebuggerEvent](#DebuggerEvent) |
99 | rootLib | [@Library](#atLibrary) |
100 | timers | ??? |
101 | tagCounters | ??? |
102 | error? | [Error](#Error) |
103 | canonicalTypeArguments | | kill? |
104 | libs | List of [@Library](#atLibrary) |
105 | features | List of String |
106
107 ### <a name="atLibrary"></a>@Library
108
109 | keys | values | comments
110 | --- | --- | ---
111 | type | "@Library" |
112 | id | String |
113 | name | String |
114 | vmName? | String | Internal vm name. Provided only when different from 'name' .
115 | url | String
116
117 ### <a name="Library"></a>Library
118
119 | keys | values | comments
120 | --- | --- | ---
121 | type | "Library" |
122 | id | String |
123 | name | String |
124 | vmName? | String | Internal vm name. Provided only when different from 'name' .
125 | classes | List of [@Class](#atClass) |
126 | imports | List of [@Library](#atLibrary) |
127 | variables | List of ... |
128 | functions | List of [@Function](#atFunction) |
129 | scripts | List of [@Script](#atScript) |
130 118
131 ### <a name="atClass"></a>@Class 119 ### <a name="atClass"></a>@Class
132 | keys | values | comments 120 | keys | values | comments
133 | --- | --- | --- 121 | --- | --- | ---
134 | type | "@Class" | 122 | type | "@Class" |
135 | id | String | 123 | id | String |
136 | user_name | String | 124 | user_name | String |
137 | name | String | 125 | name | String |
138 126
139 ### <a name="Class"></a>Class 127 ### <a name="Class"></a>Class
(...skipping 14 matching lines...) Expand all
154 | script? | [@Script](#atScript) | Script containing class source 142 | script? | [@Script](#atScript) | Script containing class source
155 | tokenPos? | int | starting token position of class source in script 143 | tokenPos? | int | starting token position of class source in script
156 | endTokenPos? | int | end token position of class source in script 144 | endTokenPos? | int | end token position of class source in script
157 | interfaces | List of [@Class](#atClass) | interfaces this class has implemente d 145 | interfaces | List of [@Class](#atClass) | interfaces this class has implemente d
158 | fields | List of [@Field](#atField) | 146 | fields | List of [@Field](#atField) |
159 | functions | List of [@Function](#atFunction) | 147 | functions | List of [@Function](#atFunction) |
160 | subclasses | List of [@Class](#atClass) | classes which extend this class. 148 | subclasses | List of [@Class](#atClass) | classes which extend this class.
161 | canonicalTypes | [@TypeList] | kill? 149 | canonicalTypes | [@TypeList] | kill?
162 | allocationStats | ClassHeapStats | 150 | allocationStats | ClassHeapStats |
163 151
164 ### <a name="atFunction"></a>@Function 152 ### <a name="ClassHeapStats"></a>ClassHeapStats
165 | keys | values | comments 153 | keys | values | comments
166 | --- | --- | --- 154 | --- | --- | ---
167 | type | "@Function" | 155 | type | "ClassHeapStats" |
156 | id | String |
157 | class | [@Class](#atClass) |
158 | new | List of int | Allocation statistics for new space. See note below on all ocation statistics list format.
159 | old | List of int | Allocation statistics for old space. See note below on all ocation statistics list format.
160 | promotedInstances | int | number of instances promoted at last new-space GC.
161 | promotedBytes | int | number of bytes promoted at last new-space GC.
162
163 *Allocation statistics list format*
164 | index | value | description
165 | --- | --- | --- |
166 | 0 | int | Instances allocated before last GC |
167 | 1 | int | Bytes allocated before last GC |
168 | 2 | int | Instances alive after last GC |
169 | 3 | int | Bytes alive after last GC |
170 | 4 | int | Instances allocated since last GC |
171 | 5 | int | Bytes allocated since last GC |
172 | 6 | int | Instances allocated since last accumulator reset |
173 | 7 | int | Bytes allocated since last accumulator reset |
174
175 ### <a name="atCode"></a>@Code
176 | keys | values | comments
177 | --- | --- | ---
178 | type | "@Code" |
168 | id | String | 179 | id | String |
169 | user_name | String | 180 | user_name | String |
170 | name | String | 181 | name | String |
171 | owningLibrary? | [@Library](#atLibrary) | Set for non-top level functions 182 | start | String | starting address of code
172 | owningClass? | [@Class](#atClass) | Set for non-top level functions 183 | end | String | ending address of code
173 | parent? | [@Function](#atFunction) | Parent function 184 | isOptimized | bool |
174 | kind | String | 185 | isAlive | bool |
186 | kind | String
187 | function | [@Function](#atFunction) |
175 188
176 ### <a name="Function"></a>Function 189 ### <a name="Code"></a>Code
177 | keys | values | comments 190 | keys | values | comments
178 | --- | --- | --- 191 | --- | --- | ---
179 | type | "@Function" | 192 | type | "@Code" |
180 | id | String | 193 | id | String |
181 | user_name | String | 194 | user_name | String |
182 | name | String | 195 | name | String |
183 | owningLibrary | [@Library](#atLibrary) | Set for non-top level functions 196 | start | String | starting address of code
184 | owningClass | [@Class](#atClass) | Set for non-top level functions 197 | end | String | ending address of code
185 | parent? | [@Function](#atFunction) | Parent function 198 | isOptimized | bool |
199 | isAlive | bool |
200 | kind | String
201 | function | [@Function](#atFunction) |
202 | object_pool | List of [@Object](Object) |
203 | disassembly | List of String | See note below on disassembly list format
204
205 *Disassembly list format*
206 | index | value | description
207 | --- | --- | --- |
208 | 0 | String | Address of instruction
209 | 1 | String | Hex encoding of instruction
210 | 2 | String | Human encoding of instruction
211 | 0 + (3 * K) | String | Address of Kth instruction
212 | 1 + (3 * K) | String | Hex encoding of instruction of Kth instruction
213 | 2 + (3 * K) | String | Human encoding of instruction of Kth instruction
214
215 ### <a name="DebuggerEvent"></a>DebuggerEvent
216
217 | keys | values | comments
218 | --- | --- | ---
219 | type | "DebuggerEvent" |
220 | id | String | TODO: Remove |
221 | eventType | String | "BreakpointReached", "BreakpointResolved", "ExceptionThro wn", "IsolateCreated", "IsolateShutdown", or "IsolateInterrupted" |
222 | isolate | [@Isolate](#atIsolate) |
223 | breakpoint? | [Breakpoint](#atBreakpoint) | for eventTypes "BreakpointResolved " and "BreakpointReached<br><br>TODO: Maybe make this @Breakpoint?
224 | exception? | [@Instance](#atInstance) | for eventType "ExceptionThrown"
225
226 ### <a name="Error"></a>Error
227
228 TODO: Drop id from Error.
229
230 | keys | values | comments
231 | --- | --- | ---
232 | type | "Error" |
233 | id | String | always empty
186 | kind | String | 234 | kind | String |
187 | is_static | bool | 235 | message | String |
188 | is_const | bool |
189 | is_optimizable | bool |
190 | is_inlinable | bool |
191 | usage_counter | int |
192 | optimized_call_site_count | int |
193 | deoptimizations | int |
194 | script? | [@Script](#atScript) | Script containing function source
195 | tokenPos? | int | starting token position of function source in script
196 | endTokenPos? | int | end token position of function source in script
197 | unoptimized_code | [@Code](#atCode) |
198 | code | [@Code](#atCode) | Current code
199 236
200 ### <a name="atField"></a>@Field 237 ### <a name="atField"></a>@Field
201 | keys | values | comments 238 | keys | values | comments
202 | --- | --- | --- 239 | --- | --- | ---
203 | type | "@Field" | 240 | type | "@Field" |
204 | id | String | 241 | id | String |
205 | user_name | String | 242 | user_name | String |
206 | name | String | 243 | name | String |
207 | value? | Instance | value associated with static field <-- do we want to inclu de this in a field reference? 244 | value? | Instance | value associated with static field <-- do we want to inclu de this in a field reference?
208 | owner | [@Library](#atLibrary),[@Class](#atClass) | Owning library or class <- - handling of owner is inconsistent with Function 245 | owner | [@Library](#atLibrary),[@Class](#atClass) | Owning library or class <- - handling of owner is inconsistent with Function
(...skipping 15 matching lines...) Expand all
224 | declared_type | [@AbstractType](#atAbstractType) | 261 | declared_type | [@AbstractType](#atAbstractType) |
225 | static | bool | 262 | static | bool |
226 | final | bool | 263 | final | bool |
227 | const | bool | 264 | const | bool |
228 | guard_nullable | bool | can this field hold a null? 265 | guard_nullable | bool | can this field hold a null?
229 | guard_class | String OR [@Class](#atClass) | "unknown", "dynamic", or a class 266 | guard_class | String OR [@Class](#atClass) | "unknown", "dynamic", or a class
230 | guard_length | String OR int | "unknown", "variable", or length of array 267 | guard_length | String OR int | "unknown", "variable", or length of array
231 | script? | [@Script](#atScript) | Script containing field source 268 | script? | [@Script](#atScript) | Script containing field source
232 | tokenPos? | int | starting token position of field source in script 269 | tokenPos? | int | starting token position of field source in script
233 270
234 ### <a name="atCode"></a>@Code 271 ### <a name="Frame"></a>Frame
272
273 TODO: Add type and id?<br>
274
235 | keys | values | comments 275 | keys | values | comments
236 | --- | --- | --- 276 | --- | --- | ---
237 | type | "@Code" | 277 | script | [@Script](#atScript) |
278 | tokenPos | int |
279 | function | [@Function](#atFunction) |
280 | code | [@Code](#atCode) |
281 | vars | List of [FrameVar](#FrameVar) |
282
283 ### <a name="FrameVar"></a>FrameVar
284
285 | keys | values | comments
286 | --- | --- | ---
287 | name | String |
288 | value | [@Instance](#atInstance) |
289
290 ### <a name="atFunction"></a>@Function
291 | keys | values | comments
292 | --- | --- | ---
293 | type | "@Function" |
238 | id | String | 294 | id | String |
239 | user_name | String | 295 | user_name | String |
240 | name | String | 296 | name | String |
241 | start | String | starting address of code 297 | owningLibrary? | [@Library](#atLibrary) | Set for non-top level functions
242 | end | String | ending address of code 298 | owningClass? | [@Class](#atClass) | Set for non-top level functions
243 | isOptimized | bool | 299 | parent? | [@Function](#atFunction) | Parent function
244 | isAlive | bool | 300 | kind | String |
245 | kind | String
246 | function | [@Function](#atFunction) |
247 301
248 ### <a name="Code"></a>Code 302 ### <a name="Function"></a>Function
249 | keys | values | comments 303 | keys | values | comments
250 | --- | --- | --- 304 | --- | --- | ---
251 | type | "@Code" | 305 | type | "@Function" |
252 | id | String | 306 | id | String |
253 | user_name | String | 307 | user_name | String |
254 | name | String | 308 | name | String |
255 | start | String | starting address of code 309 | owningLibrary | [@Library](#atLibrary) | Set for non-top level functions
256 | end | String | ending address of code 310 | owningClass | [@Class](#atClass) | Set for non-top level functions
257 | isOptimized | bool | 311 | parent? | [@Function](#atFunction) | Parent function
258 | isAlive | bool | 312 | kind | String |
259 | kind | String 313 | is_static | bool |
260 | function | [@Function](#atFunction) | 314 | is_const | bool |
261 | object_pool | List of [@Object](Object) | 315 | is_optimizable | bool |
262 | disassembly | List of String | See note below on disassembly list format 316 | is_inlinable | bool |
317 | usage_counter | int |
318 | optimized_call_site_count | int |
319 | deoptimizations | int |
320 | script? | [@Script](#atScript) | Script containing function source
321 | tokenPos? | int | starting token position of function source in script
322 | endTokenPos? | int | end token position of function source in script
323 | unoptimized_code | [@Code](#atCode) |
324 | code | [@Code](#atCode) | Current code
263 325
264 *Disassembly list format* 326 ### <a name="atIsolate"></a>@Isolate
265 | index | value | description
266 | --- | --- | --- |
267 | 0 | String | Address of instruction
268 | 1 | String | Hex encoding of instruction
269 | 2 | String | Human encoding of instruction
270 | 0 + (3 * K) | String | Address of Kth instruction
271 | 1 + (3 * K) | String | Hex encoding of instruction of Kth instruction
272 | 2 + (3 * K) | String | Human encoding of instruction of Kth instruction
273 327
274 ### <a name="Error"></a>Error
275 | keys | values | comments 328 | keys | values | comments
276 | --- | --- | --- 329 | --- | --- | ---
277 | type | "Error" | 330 | type | "@Isolate" |
278 | id | String | always empty 331 | id | String |
279 | kind | String | 332 | mainPort | String | kill? |
280 | message | String | 333 | name | String |
281 334
282 ### <a name="ClassHeapStats"></a>ClassHeapStats 335 ### Isolate
336
283 | keys | values | comments 337 | keys | values | comments
284 | --- | --- | --- 338 | --- | --- | ---
285 | type | "ClassHeapStats" | 339 | type | "Isolate" |
286 | id | String | 340 | id | String |
287 | class | [@Class](#atClass) | 341 | mainPort | String | kill? |
288 | new | List of int | Allocation statistics for new space. See note below on all ocation statistics list format. 342 | name | String |
289 | old | List of int | Allocation statistics for old space. See note below on all ocation statistics list format. 343 | entry? | [@Function](#atFunction) |
290 | promotedInstances | int | number of instances promoted at last new-space GC. 344 | heaps | ??? |
291 | promotedBytes | int | number of bytes promoted at last new-space GC. 345 | topFrame? | [Frame](#Frame) |
346 | livePorts | int |
347 | pauseOnExit | bool |
348 | pauseEvent? | [DebuggerEvent](#DebuggerEvent) |
349 | rootLib | [@Library](#atLibrary) |
350 | timers | ??? |
351 | tagCounters | ??? |
352 | error? | [Error](#Error) |
353 | canonicalTypeArguments | | kill? |
354 | libs | List of [@Library](#atLibrary) |
355 | features | List of String |
292 356
293 *Allocation statistics list format* 357 ### <a name="atLibrary"></a>@Library
294 | index | value | description
295 | --- | --- | --- |
296 | 0 | int | Instances allocated before last GC |
297 | 1 | int | Bytes allocated before last GC |
298 | 2 | int | Instances alive after last GC |
299 | 3 | int | Bytes alive after last GC |
300 | 4 | int | Instances allocated since last GC |
301 | 5 | int | Bytes allocated since last GC |
302 | 6 | int | Instances allocated since last accumulator reset |
303 | 7 | int | Bytes allocated since last accumulator reset |
304 358
305 ### <a name="atAbstractType"></a>@AbstractType 359 | keys | values | comments
360 | --- | --- | ---
361 | type | "@Library" |
362 | id | String |
363 | name | String |
364 | vmName? | String | Internal vm name. Provided only when different from 'name' .
365 | url | String
306 366
307 ### <a name="AbstractType"></a>AbstractType 367 ### <a name="Library"></a>Library
368
369 | keys | values | comments
370 | --- | --- | ---
371 | type | "Library" |
372 | id | String |
373 | name | String |
374 | vmName? | String | Internal vm name. Provided only when different from 'name' .
375 | classes | List of [@Class](#atClass) |
376 | imports | List of [@Library](#atLibrary) |
377 | variables | List of ... |
378 | functions | List of [@Function](#atFunction) |
379 | scripts | List of [@Script](#atScript) |
380
381 ### <a name="Location"></a>Location
382
383 | keys | values | comments
384 | --- | --- | ---
385 | type | "Location" |
386 | script | [@Script](#atScript) |
387 | tokenPos | int |
388
389 ### <a name="@Null"></a>@Null
390
391 TODO: Split Null from the other Sentinel types.
392
393 | keys | values | comments
394 | --- | --- | ---
395 | type | "@Null" |
396 | id | String | |
397 | valueAsString | String |
308 398
309 ### <a name="PcDescriptor"></a>PcDescriptor 399 ### <a name="PcDescriptor"></a>PcDescriptor
310 400
311
312 ### <a name="atScript"></a>@Script 401 ### <a name="atScript"></a>@Script
313 | keys | values | comments | example | 402 | keys | values | comments | example |
314 | --- | --- | --- 403 | --- | --- | ---
315 | type | "@Script" | 404 | type | "@Script" |
316 | id | String 405 | id | String
317 | name | String 406 | name | String
318 | vmName? | String | Internal vm name. Provided only when different from 'name' . 407 | vmName? | String | Internal vm name. Provided only when different from 'name' .
319 | kind | String 408 | kind | String
320 409
321 ### <a name="Script"></a>Script 410 ### <a name="Script"></a>Script
(...skipping 10 matching lines...) Expand all
332 421
333 *Token line format* 422 *Token line format*
334 | index | value | comments 423 | index | value | comments
335 | --- | --- | --- 424 | --- | --- | ---
336 | 0 | int | line number 425 | 0 | int | line number
337 | 1 | int | first token position 426 | 1 | int | first token position
338 | 2 | int | first column number 427 | 2 | int | first column number
339 | ... | ... | ... 428 | ... | ... | ...
340 | 1 + (2 * k) | int | kth token position 429 | 1 + (2 * k) | int | kth token position
341 | 2 + (2 * k) | int | kth column number 430 | 2 + (2 * k) | int | kth column number
431
432 ### <a name="VM"></a>VM
433
434 | keys | values | comments
435 | --- | --- | ---
436 | type | "VM" |
437 | id | String |
438 | targetCPU | String |
439 | hostCPU | String |
440 | date | String | kill? |
441 | version | String |
442 | pid | int |
443 | assertsEnabled | bool | TODO: move to features? |
444 | typeChecksEnabled | bool | TODO: move to features? |
445 | uptime | double | seconds since vm started |
446 | "isolates" | List of [@Isolate](#atIsolate) |
447
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698