OLD | NEW |
1 # Dart VM Service Protocol 1.0 (Draft 1) | 1 # Dart VM Service Protocol 1.0 (Draft 1) |
2 | 2 |
3 > Please post feedback to the [observatory-discuss group][discuss-list] | 3 > Please post feedback to the [observatory-discuss group][discuss-list] |
4 | 4 |
5 This document describes _draft 1_ of _version 1.0_ of the Dart VM | 5 This document describes _draft 1_ of _version 1.0_ of the Dart VM |
6 Service Protocol. This protocol is used to communicate with a running | 6 Service Protocol. This protocol is used to communicate with a running |
7 Dart Virtual Machine. | 7 Dart Virtual Machine. |
8 | 8 |
9 To use the Service Protocol, start the VM with the *--observe* flag. | 9 To use the Service Protocol, start the VM with the *--observe* flag. |
10 The VM will start a webserver which services protocol requests via WebSocket. | 10 The VM will start a webserver which services protocol requests via WebSocket. |
(...skipping 602 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
613 subscribed) error code is returned. | 613 subscribed) error code is returned. |
614 | 614 |
615 The _streamId_ parameter may have the following published values: | 615 The _streamId_ parameter may have the following published values: |
616 | 616 |
617 streamId | event types provided | 617 streamId | event types provided |
618 -------- | ----------- | 618 -------- | ----------- |
619 Isolate | IsolateStart, IsolateExit, IsolateUpdate | 619 Isolate | IsolateStart, IsolateExit, IsolateUpdate |
620 Debug | PauseStart, PauseExit, PauseBreakpoint, PauseInterrupted, PauseException
, Resume, BreakpointAdded, BreakpointResolved, BreakpointRemoved, Inspect | 620 Debug | PauseStart, PauseExit, PauseBreakpoint, PauseInterrupted, PauseException
, Resume, BreakpointAdded, BreakpointResolved, BreakpointRemoved, Inspect |
621 GC | GC | 621 GC | GC |
622 | 622 |
| 623 Additionally, some embedders provide the _Stdout_ and _Stderr_ |
| 624 streams. These streams allow the client to subscribe to writes to |
| 625 stdout and stderr. |
| 626 |
| 627 streamId | event types provided |
| 628 -------- | ----------- |
| 629 Stdout | WriteEvent |
| 630 Stderr | WriteEvent |
| 631 |
623 It is considered a _backwards compatible_ change to add a new type of event to a
n existing stream. | 632 It is considered a _backwards compatible_ change to add a new type of event to a
n existing stream. |
624 Clients should be written to handle this gracefully, perhaps by warning and igno
ring. | 633 Clients should be written to handle this gracefully, perhaps by warning and igno
ring. |
625 | 634 |
626 See [Success](#success). | 635 See [Success](#success). |
627 | 636 |
628 ## Public Types | 637 ## Public Types |
629 | 638 |
630 The following is a list of all public types produced by the Service Protocol. | 639 The following is a list of all public types produced by the Service Protocol. |
631 | 640 |
632 We define a small set of primitive types, based on JSON equivalents. | 641 We define a small set of primitive types, based on JSON equivalents. |
(...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
985 // PauseException | 994 // PauseException |
986 // | 995 // |
987 // For the Resume event, the top frame is provided at | 996 // For the Resume event, the top frame is provided at |
988 // all times except for the initial resume event that is delivered | 997 // all times except for the initial resume event that is delivered |
989 // when an isolate begins execution. | 998 // when an isolate begins execution. |
990 Frame topFrame [optional]; | 999 Frame topFrame [optional]; |
991 | 1000 |
992 // The exception associated with this event, if this is a | 1001 // The exception associated with this event, if this is a |
993 // PauseException event. | 1002 // PauseException event. |
994 @Instance exception [optional]; | 1003 @Instance exception [optional]; |
| 1004 |
| 1005 // An array of bytes, encoded as a base64 string. |
| 1006 // |
| 1007 // This is provided for the WriteEvent event. |
| 1008 string bytes [optional]; |
995 } | 1009 } |
996 ``` | 1010 ``` |
997 | 1011 |
998 An _Event_ is an asynchronous notification from the VM. It is delivered | 1012 An _Event_ is an asynchronous notification from the VM. It is delivered |
999 only when the client has subscribed to an event stream using the | 1013 only when the client has subscribed to an event stream using the |
1000 [streamListen](#streamListen) RPC. | 1014 [streamListen](#streamListen) RPC. |
1001 | 1015 |
1002 For more information, see [events](#events). | 1016 For more information, see [events](#events). |
1003 | 1017 |
1004 ### EventKind | 1018 ### EventKind |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1037 // A breakpoint has been added for an isolate. | 1051 // A breakpoint has been added for an isolate. |
1038 BreakpointAdded, | 1052 BreakpointAdded, |
1039 | 1053 |
1040 // An unresolved breakpoint has been resolved for an isolate. | 1054 // An unresolved breakpoint has been resolved for an isolate. |
1041 BreakpointResolved, | 1055 BreakpointResolved, |
1042 | 1056 |
1043 // A breakpoint has been removed. | 1057 // A breakpoint has been removed. |
1044 BreakpointRemoved, | 1058 BreakpointRemoved, |
1045 | 1059 |
1046 // A garbage collection event. | 1060 // A garbage collection event. |
1047 GC | 1061 GC, |
| 1062 |
| 1063 // Notification of bytes written, for example, to stdout/stderr. |
| 1064 WriteEvent |
1048 } | 1065 } |
1049 ``` | 1066 ``` |
1050 | 1067 |
1051 Adding new values to _EventKind_ is considered a backwards compatible | 1068 Adding new values to _EventKind_ is considered a backwards compatible |
1052 change. Clients should ignore unrecognized events. | 1069 change. Clients should ignore unrecognized events. |
1053 | 1070 |
1054 ### Field | 1071 ### Field |
1055 | 1072 |
1056 ``` | 1073 ``` |
1057 class @Field extends @Object { | 1074 class @Field extends @Object { |
(...skipping 912 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1970 ``` | 1987 ``` |
1971 | 1988 |
1972 ## Revision History | 1989 ## Revision History |
1973 | 1990 |
1974 version | comments | 1991 version | comments |
1975 ------- | -------- | 1992 ------- | -------- |
1976 1.0 draft 1 | initial revision | 1993 1.0 draft 1 | initial revision |
1977 | 1994 |
1978 | 1995 |
1979 [discuss-list]: https://groups.google.com/a/dartlang.org/forum/#!forum/observato
ry-discuss | 1996 [discuss-list]: https://groups.google.com/a/dartlang.org/forum/#!forum/observato
ry-discuss |
OLD | NEW |