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

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

Issue 1152753005: Service cleanups... (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 6 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
OLDNEW
1 # Dart VM Service Protocol 0.0 1 # Dart VM Service Protocol 0.0
2 2
3 This document describes _version 0.0_ of the Dart VM Service Protocol. 3 This document describes _version 0.0_ of the Dart VM Service Protocol.
4 This protocol is used to communicate with a running Dart Virtual 4 This protocol is used to communicate with a running Dart Virtual
5 Machine. 5 Machine.
6 6
7 To use the Service Protocol, start the VM with the *--observe* flag. 7 To use the Service Protocol, start the VM with the *--observe* flag.
8 The VM will start a webserver which services protocol requests via WebSocket. 8 The VM will start a webserver which services protocol requests via WebSocket.
9 It is possible to make HTTP (non-WebSocket) requests, 9 It is possible to make HTTP (non-WebSocket) requests,
10 but this does not allow access to VM _events_ and is not documented 10 but this does not allow access to VM _events_ and is not documented
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 - [streamCancel](#streamcancel) 42 - [streamCancel](#streamcancel)
43 - [streamListen](#streamlisten) 43 - [streamListen](#streamlisten)
44 - [Public Types](#public-types) 44 - [Public Types](#public-types)
45 - [BoundField](#boundfield) 45 - [BoundField](#boundfield)
46 - [BoundVariable](#boundvariable) 46 - [BoundVariable](#boundvariable)
47 - [Breakpoint](#breakpoint) 47 - [Breakpoint](#breakpoint)
48 - [Class](#class) 48 - [Class](#class)
49 - [ClassList](#classlist) 49 - [ClassList](#classlist)
50 - [Code](#code) 50 - [Code](#code)
51 - [CodeKind](#codekind) 51 - [CodeKind](#codekind)
52 - [Context](#context)
53 - [ContextElement](#contextelement)
52 - [Error](#error) 54 - [Error](#error)
55 - [ErrorKind](#errorkind)
53 - [Event](#event) 56 - [Event](#event)
54 - [EventKind](#eventkind) 57 - [EventKind](#eventkind)
55 - [Field](#field) 58 - [Field](#field)
56 - [Flag](#flag) 59 - [Flag](#flag)
57 - [FlagList](#flaglist) 60 - [FlagList](#flaglist)
58 - [Frame](#frame) 61 - [Frame](#frame)
59 - [Function](#function) 62 - [Function](#function)
60 - [Instance](#instance) 63 - [Instance](#instance)
61 - [Isolate](#isolate) 64 - [Isolate](#isolate)
62 - [Library](#library) 65 - [Library](#library)
63 - [LibraryDependency](#librarydependency) 66 - [LibraryDependency](#librarydependency)
64 » - [ListElement](#listelement) 67 » - [MapAssociation](#mapassociation)
65 - [Message](#message) 68 - [Message](#message)
66 - [Null](#null) 69 - [Null](#null)
67 - [Object](#object) 70 - [Object](#object)
68 - [Sentinel](#sentinel) 71 - [Sentinel](#sentinel)
69 - [SentinelKind](#sentinelkind) 72 - [SentinelKind](#sentinelkind)
70 - [Script](#script) 73 - [Script](#script)
71 - [SourceLocation](#sourcelocation) 74 - [SourceLocation](#sourcelocation)
72 - [Stack](#stack) 75 - [Stack](#stack)
73 - [StepOption](#stepoption) 76 - [StepOption](#stepoption)
74 - [Success](#success) 77 - [Success](#success)
(...skipping 787 matching lines...) Expand 10 before | Expand all | Expand 10 after
862 int length; 865 int length;
863 } 866 }
864 ``` 867 ```
865 868
866 ``` 869 ```
867 class Context { 870 class Context {
868 // The number of variables in this context. 871 // The number of variables in this context.
869 int length; 872 int length;
870 873
871 // The variables in this context object. 874 // The variables in this context object.
872 ListElement[] variables; 875 ContextElement[] variables;
873 } 876 }
874 ``` 877 ```
875 878
879 ### ContextElement
880
881 ```
882 class ContextElement {
883 @Instance|Sentinel value;
884 }
885 ```
886
876 ### Error 887 ### Error
877 888
878 ``` 889 ```
879 class @Error extends @Object { 890 class @Error extends @Object {
891 // What kind of error is this?
892 ErrorKind kind;
893
880 // A description of the error. 894 // A description of the error.
881 string message; 895 string message;
882 } 896 }
883 ``` 897 ```
884 898
885 _@Error_ is a reference to an _Error_. 899 _@Error_ is a reference to an _Error_.
886 900
887 ``` 901 ```
888 class Error extends Object { 902 class Error extends Object {
903 // What kind of error is this?
904 ErrorKind kind;
905
889 // A description of the error. 906 // A description of the error.
890 string message; 907 string message;
891 908
892 // If this error is due to an unhandled exception, this 909 // If this error is due to an unhandled exception, this
893 // is the exception thrown. 910 // is the exception thrown.
894 @Instance exception [optional]; 911 @Instance exception [optional];
895 912
896 // If this error is due to an unhandled exception, this 913 // If this error is due to an unhandled exception, this
897 // is the stacktrace object. 914 // is the stacktrace object.
898 @Instance stacktrace [optional]; 915 @Instance stacktrace [optional];
899 } 916 }
900 ``` 917 ```
901 918
902 An _Error_ represents a Dart language level error. This is distinct from an 919 An _Error_ represents a Dart language level error. This is distinct from an
903 [rpc error](#rpc-error). 920 [rpc error](#rpc-error).
904 921
905 An error may occur when: 922 ### ErrorKind
906 923
907 - The program has encountered an unhandled exception 924 ```
908 - The program has encountered a syntax error (or another Dart language error) 925 enum ErrorKind {
909 - The program has encountered an unhandled erroneous condition in native code 926 // The isolate has encountered an unhandled Dart exception.
910 - The program has been terminated 927 UnhandledException,
928
929 // The isolate has encountered a Dart language error in the program.
930 LanguageError,
931
932 // The isolate has encounted an internal error. These errors should be
933 // reported as bugs.
934 InternalError,
935
936 // The isolate has been terminated by an external source.
937 TerminationError
938 }
939 ```
911 940
912 ### Event 941 ### Event
913 942
914 ``` 943 ```
915 class Event extends Response { 944 class Event extends Response {
916 // What kind of event is this? 945 // What kind of event is this?
917 EventKind kind; 946 EventKind kind;
918 947
919 // The isolate with which this event is associated. 948 // The isolate with which this event is associated.
920 @Isolate isolate; 949 @Isolate isolate;
921 950
922 // The breakpoint associated with this event, if applicable. 951 // The breakpoint which was added, removed, or resolved.
923 // 952 //
924 // This is provided for the event kinds: 953 // This is provided for the event kinds:
925 // PauseBreakpoint 954 // PauseBreakpoint
926 // BreakpointAdded 955 // BreakpointAdded
927 // BreakpointRemoved 956 // BreakpointRemoved
928 // BreakpointResolved 957 // BreakpointResolved
929 Breakpoint breakpoint [optional]; 958 Breakpoint breakpoint [optional];
930 959
960 // The list of breakpoints at which we are currently paused
961 // for a PauseBreakpoint event.
962 //
963 // This list may be empty. For example, while single-stepping, the
964 // VM sends a PauseBreakpoint event with no breakpoints.
965 //
966 // If there is more than one breakpoint set at the program position,
967 // then all of them will be provided.
968 //
969 // This is provided for the event kinds:
970 // PauseBreakpoint
971 Breakpoint[] pauseBreakpoints [optional];
972
931 // The top stack frame associated with this event, if applicable. 973 // The top stack frame associated with this event, if applicable.
932 // 974 //
933 // This is provided for the event kinds: 975 // This is provided for the event kinds:
934 // PauseBreakpoint 976 // PauseBreakpoint
935 // PauseInterrupted 977 // PauseInterrupted
936 // PauseException 978 // PauseException
937 // 979 //
938 // For the Resume event, the top frame is provided at 980 // For the Resume event, the top frame is provided at
939 // all times except for the initial resume event that is delivered 981 // all times except for the initial resume event that is delivered
940 // when an isolate begins execution. 982 // when an isolate begins execution.
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
1154 1196
1155 A _Function_ represents a Dart language function. 1197 A _Function_ represents a Dart language function.
1156 1198
1157 ### Instance 1199 ### Instance
1158 1200
1159 ``` 1201 ```
1160 class @Instance extends @Object { 1202 class @Instance extends @Object {
1161 // What kind of instance is this? 1203 // What kind of instance is this?
1162 InstanceKind kind; 1204 InstanceKind kind;
1163 1205
1164 // Instance references include their class. 1206 // Instance references always include their class.
1165 @Class class; 1207 @Class class;
1166 1208
1167 // The value of this instance as a string. 1209 // The value of this instance as a string.
1168 // 1210 //
1169 // Provided for the instance kinds: 1211 // Provided for the instance kinds:
1170 // Null (null) 1212 // Null (null)
1171 // Bool (true or false) 1213 // Bool (true or false)
1172 // Double (suitable for passing to Double.parse()) 1214 // Double (suitable for passing to Double.parse())
1173 // Int (suitable for passing to int.parse()) 1215 // Int (suitable for passing to int.parse())
1174 // String (value may be truncated) 1216 // String (value may be truncated)
(...skipping 29 matching lines...) Expand all
1204 } 1246 }
1205 ``` 1247 ```
1206 1248
1207 _@Instance_ is a reference to an _Instance_. 1249 _@Instance_ is a reference to an _Instance_.
1208 1250
1209 ``` 1251 ```
1210 class Instance extends Object { 1252 class Instance extends Object {
1211 // What kind of instance is this? 1253 // What kind of instance is this?
1212 InstanceKind kind; 1254 InstanceKind kind;
1213 1255
1214 // Instance references include their class. 1256 // Instance references always include their class.
1215 @Class class; 1257 @Class class;
1216 1258
1217 // The value of this instance as a string. 1259 // The value of this instance as a string.
1218 // 1260 //
1219 // Provided for the instance kinds: 1261 // Provided for the instance kinds:
1220 // Bool (true or false) 1262 // Bool (true or false)
1221 // Double (suitable for passing to Double.parse()) 1263 // Double (suitable for passing to Double.parse())
1222 // Int (suitable for passing to int.parse()) 1264 // Int (suitable for passing to int.parse())
1223 // String (value may be truncated) 1265 // String (value may be truncated)
1224 string valueAsString [optional]; 1266 string valueAsString [optional];
(...skipping 26 matching lines...) Expand all
1251 // TypeParameter 1293 // TypeParameter
1252 @Class parameterizedClass [optional]; 1294 @Class parameterizedClass [optional];
1253 1295
1254 // The fields of this Instance. 1296 // The fields of this Instance.
1255 BoundField fields [optional]; 1297 BoundField fields [optional];
1256 1298
1257 // The elements of a List instance. 1299 // The elements of a List instance.
1258 // 1300 //
1259 // Provided for instance kinds: 1301 // Provided for instance kinds:
1260 // List 1302 // List
1261 ListElement[] elements [optional]; 1303 @Instance|Sentinel[] elements [optional];
1262 1304
1263 // The elements of a List instance. 1305 // The elements of a List instance.
1264 // 1306 //
1265 // Provided for instance kinds: 1307 // Provided for instance kinds:
1266 // Map 1308 // Map
1267 MapAssociation[] associations [optional]; 1309 MapAssociation[] associations [optional];
1268 1310
1269 // The function associated with a Closure instance. 1311 // The function associated with a Closure instance.
1270 // 1312 //
1271 // Provided for instance kinds: 1313 // Provided for instance kinds:
(...skipping 30 matching lines...) Expand all
1302 // Type 1344 // Type
1303 @TypeArguments typeArguments [optional]; 1345 @TypeArguments typeArguments [optional];
1304 1346
1305 // The index of a TypeParameter instance. 1347 // The index of a TypeParameter instance.
1306 // 1348 //
1307 // Provided for instance kinds: 1349 // Provided for instance kinds:
1308 // TypeParameter 1350 // TypeParameter
1309 int parameterIndex [optional]; 1351 int parameterIndex [optional];
1310 1352
1311 // The type bounded by a BoundedType instance 1353 // The type bounded by a BoundedType instance
1312 // or 1354 //
1355 // The value will always be one of:
1356 // Type, TypeRef, TypeParameter, BoundedType.
1357 //
1358 // Provided for instance kinds:
1359 // BoundedType
1360 @Instance boundedType [optional];
1361
1313 // The referent of a TypeRef instance. 1362 // The referent of a TypeRef instance.
1314 // 1363 //
1315 // The value will always be one of: 1364 // The value will always be one of:
1316 // Type, TypeRef, TypeParameter, BoundedType. 1365 // Type, TypeRef, TypeParameter, BoundedType.
1317 // 1366 //
1318 // Provided for instance kinds: 1367 // Provided for instance kinds:
1319 // BoundedType 1368 // BoundedType
1320 // TypeRef 1369 // TypeRef
1321 @Instance type [optional]; 1370 @Instance referentType [optional];
1322 1371
1323 // The bound of a TypeParameter or BoundedType. 1372 // The bound of a TypeParameter or BoundedType.
1324 // 1373 //
1325 // The value will always be one of: 1374 // The value will always be one of:
1326 // Type, TypeRef, TypeParameter, BoundedType. 1375 // Type, TypeRef, TypeParameter, BoundedType.
1327 // 1376 //
1328 // Provided for instance kinds: 1377 // Provided for instance kinds:
1329 // BoundedType 1378 // BoundedType
1330 // TypeParameter 1379 // TypeParameter
1331 @Instance bound [optional]; 1380 @Instance bound [optional];
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
1514 // The prefix of an 'as' import, or null. 1563 // The prefix of an 'as' import, or null.
1515 String prefix; 1564 String prefix;
1516 1565
1517 // The library being imported or exported. 1566 // The library being imported or exported.
1518 @Library target; 1567 @Library target;
1519 } 1568 }
1520 ``` 1569 ```
1521 1570
1522 A _LibraryDependency_ provides information about an import or export. 1571 A _LibraryDependency_ provides information about an import or export.
1523 1572
1524 ### ListElement
1525
1526 ```
1527 class ListElement {
1528 int index;
1529 @Instance|Sentinel value;
1530 }
1531 ```
1532
1533 ### MapAssociation 1573 ### MapAssociation
1534 1574
1535 ``` 1575 ```
1536 class MapAssociation { 1576 class MapAssociation {
1537 @Instance|Sentinel key; 1577 @Instance|Sentinel key;
1538 @Instance|Sentinel value; 1578 @Instance|Sentinel value;
1539 } 1579 }
1540 ``` 1580 ```
1541 1581
1542 ### Message 1582 ### Message
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
1585 _@Object_ is a reference to a _Object_. 1625 _@Object_ is a reference to a _Object_.
1586 1626
1587 ``` 1627 ```
1588 class Object extends Response { 1628 class Object extends Response {
1589 // A unique identifier for an Object. Passed to the 1629 // A unique identifier for an Object. Passed to the
1590 // getObject RPC to reload this Object. 1630 // getObject RPC to reload this Object.
1591 // 1631 //
1592 // Some objects may get a new id when they are reloaded. 1632 // Some objects may get a new id when they are reloaded.
1593 string id; 1633 string id;
1594 1634
1595 // Every object has a corresponding Class in the VM. 1635 // If an object is allocated in the Dart heap, it will have
1596 @Class class; 1636 // a corresponding class object.
1637 //
1638 // The class of a non-instance is not a Dart class, but is instead
1639 // an internal vm object.
1640 //
1641 // Moving an Object into or out of the heap is considered a
1642 // backwards compatible change for types other than Instance.
1643 @Class class [optional];
1597 1644
1598 // The size of this object in the heap. 1645 // The size of this object in the heap.
1599 // 1646 //
1600 // Note that the size can be zero for some objects. 1647 // If an object is not heap-allocated, then this field is omitted.
1601 int size; 1648 //
1649 // Note that the size can be zero for some objects. In the current
1650 // VM implementation, this occurs for small integers, which are
1651 // stored entirely within their object pointers.
1652 int size [optional];
1602 } 1653 }
1603 ``` 1654 ```
1604 1655
1605 An _Object_ is a persistent object that is owned by some isolate. 1656 An _Object_ is a persistent object that is owned by some isolate.
1606 1657
1607 ### Sentinel 1658 ### Sentinel
1608 1659
1609 ``` 1660 ```
1610 class Sentinel extends Response { 1661 class Sentinel extends Response {
1611 // What kind of sentinel is this? 1662 // What kind of sentinel is this?
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
1827 // A list of isolates running in the VM. 1878 // A list of isolates running in the VM.
1828 @Isolate[] isolates 1879 @Isolate[] isolates
1829 } 1880 }
1830 ``` 1881 ```
1831 1882
1832 ## Revision History 1883 ## Revision History
1833 1884
1834 version | comments 1885 version | comments
1835 ------- | -------- 1886 ------- | --------
1836 0.0 | draft 1887 0.0 | draft
OLDNEW
« runtime/vm/object.cc ('K') | « runtime/vm/object.cc ('k') | runtime/vm/service_event.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698