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

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

Issue 1341473002: Fix a variety of service protocol bugs. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 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
« no previous file with comments | « runtime/vm/service.cc ('k') | runtime/vm/unit_test.h » ('j') | 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 3.0 1 # Dart VM Service Protocol 3.0
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 of _version 3.0_ of the Dart VM Service Protocol. This 5 This document describes of _version 3.0_ of the Dart VM Service Protocol. This
6 protocol is used to communicate with a running Dart Virtual Machine. 6 protocol is used to communicate with a running Dart Virtual Machine.
7 7
8 To use the Service Protocol, start the VM with the *--observe* flag. 8 To use the Service Protocol, start the VM with the *--observe* flag.
9 The VM will start a webserver which services protocol requests via WebSocket. 9 The VM will start a webserver which services protocol requests via WebSocket.
10 It is possible to make HTTP (non-WebSocket) requests, 10 It is possible to make HTTP (non-WebSocket) requests,
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 Object|Sentinel getObject(string isolateId, 491 Object|Sentinel getObject(string isolateId,
492 string objectId) 492 string objectId)
493 ``` 493 ```
494 494
495 The _getObject_ RPC is used to lookup an _object_ from some isolate by 495 The _getObject_ RPC is used to lookup an _object_ from some isolate by
496 its _id_. 496 its _id_.
497 497
498 If _objectId_ is a temporary id which has expired, then then _Expired_ 498 If _objectId_ is a temporary id which has expired, then then _Expired_
499 [Sentinel](#sentinel) is returned. 499 [Sentinel](#sentinel) is returned.
500 500
501 If _objectId_ refers to an object which has been collected by the VM's 501 If _objectId_ refers to a heap object which has been collected by the VM's
502 garbage collector, then the _Collected_ [Sentinel](#sentinel) is 502 garbage collector, then the _Collected_ [Sentinel](#sentinel) is
503 returned. 503 returned.
504 504
505 If _objectId_ refers to a non-heap object which has been deleted, then
506 the _Collected_ [Sentinel](#sentinel) is returned.
507
505 If the object handle has not expired and the object has not been 508 If the object handle has not expired and the object has not been
506 collected, then an [Object](#object) will be returned. 509 collected, then an [Object](#object) will be returned.
507 510
508 ### getStack 511 ### getStack
509 512
510 ``` 513 ```
511 Stack getStack(string isolateId) 514 Stack getStack(string isolateId)
512 ``` 515 ```
513 516
514 The _getStack_ RPC is used to retrieve the current execution stack and 517 The _getStack_ RPC is used to retrieve the current execution stack and
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 If the variable is being initialized, the _value_ will be the 770 If the variable is being initialized, the _value_ will be the
768 _BeingInitialized_ [Sentinel](#sentinel). 771 _BeingInitialized_ [Sentinel](#sentinel).
769 772
770 If the variable has been optimized out by the compiler, the _value_ 773 If the variable has been optimized out by the compiler, the _value_
771 will be the _OptimizedOut_ [Sentinel](#sentinel). 774 will be the _OptimizedOut_ [Sentinel](#sentinel).
772 775
773 ### Breakpoint 776 ### Breakpoint
774 777
775 ``` 778 ```
776 class Breakpoint extends Object { 779 class Breakpoint extends Object {
780 // A number identifying this breakpoint to the user.
777 int breakpointNumber; 781 int breakpointNumber;
782
783 // Has this breakpoint been assigned to a specific program location?
778 bool resolved; 784 bool resolved;
785
786 // SourceLocation when breakpoint is resolved, UnresolvedSourceLocation
787 // when a breakpoint is not resolved.
779 SourceLocation|UnresolvedSourceLocation location; 788 SourceLocation|UnresolvedSourceLocation location;
780 } 789 }
781 ``` 790 ```
782 791
783 A _Breakpoint_ describes a debugger breakpoint. 792 A _Breakpoint_ describes a debugger breakpoint.
784 793
794 A breakpoint is _resolved_ when it has been assigned to a specific
795 program location. A breakpoint my remain unresolved when it is in
796 code which has not yet been compiled or in a library which has not
797 been loaded (i.e. a deferred library).
798
785 ### Class 799 ### Class
786 800
787 ``` 801 ```
788 class @Class extends @Object { 802 class @Class extends @Object {
789 // The name of this class. 803 // The name of this class.
790 string name; 804 string name;
791 } 805 }
792 ``` 806 ```
793 807
794 _@Class_ is a reference to a _Class_. 808 _@Class_ is a reference to a _Class_.
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
878 Native, 892 Native,
879 Stub, 893 Stub,
880 Tag, 894 Tag,
881 Collected 895 Collected
882 } 896 }
883 ``` 897 ```
884 898
885 ### Context 899 ### Context
886 900
887 ``` 901 ```
888 class @Context { 902 class @Context extends @Object {
889 // The number of variables in this context. 903 // The number of variables in this context.
890 int length; 904 int length;
891 } 905 }
892 ``` 906 ```
893 907
894 ``` 908 ```
895 class Context { 909 class Context extends Object {
896 // The number of variables in this context. 910 // The number of variables in this context.
897 int length; 911 int length;
898 912
899 // The enclosing context for this context. 913 // The enclosing context for this context.
900 Context parent [optional]; 914 Context parent [optional];
901 915
902 // The variables in this context object. 916 // The variables in this context object.
903 ContextElement[] variables; 917 ContextElement[] variables;
904 } 918 }
905 ``` 919 ```
906 920
921 A _Context_ is a data structure which holds the captured variables for
922 some closure.
923
907 ### ContextElement 924 ### ContextElement
908 925
909 ``` 926 ```
910 class ContextElement { 927 class ContextElement {
911 @Instance|Sentinel value; 928 @Instance|Sentinel value;
912 } 929 }
913 ``` 930 ```
914 931
915 ### Error 932 ### Error
916 933
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
1303 1320
1304 // The parameterized class of a type parameter: 1321 // The parameterized class of a type parameter:
1305 // 1322 //
1306 // Provided for instance kinds: 1323 // Provided for instance kinds:
1307 // TypeParameter 1324 // TypeParameter
1308 @Class parameterizedClass [optional]; 1325 @Class parameterizedClass [optional];
1309 1326
1310 1327
1311 // The pattern of a RegExp instance. 1328 // The pattern of a RegExp instance.
1312 // 1329 //
1330 // The pattern is always an instance of kind String.
1331 //
1313 // Provided for instance kinds: 1332 // Provided for instance kinds:
1314 // RegExp 1333 // RegExp
1315 String pattern [optional]; 1334 @Instance pattern [optional];
1316 } 1335 }
1317 ``` 1336 ```
1318 1337
1319 _@Instance_ is a reference to an _Instance_. 1338 _@Instance_ is a reference to an _Instance_.
1320 1339
1321 ``` 1340 ```
1322 class Instance extends Object { 1341 class Instance extends Object {
1323 // What kind of instance is this? 1342 // What kind of instance is this?
1324 InstanceKind kind; 1343 InstanceKind kind;
1325 1344
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1388 @Instance|Sentinel[] elements [optional]; 1407 @Instance|Sentinel[] elements [optional];
1389 1408
1390 // The elements of a List instance. 1409 // The elements of a List instance.
1391 // 1410 //
1392 // Provided for instance kinds: 1411 // Provided for instance kinds:
1393 // Map 1412 // Map
1394 MapAssociation[] associations [optional]; 1413 MapAssociation[] associations [optional];
1395 1414
1396 // The bytes of a TypedData instance. 1415 // The bytes of a TypedData instance.
1397 // 1416 //
1417 // The data is provided as a Base64 encoded string.
1418 //
1398 // Provided for instance kinds: 1419 // Provided for instance kinds:
1399 // Uint8ClampedList 1420 // Uint8ClampedList
1400 // Uint8List 1421 // Uint8List
1401 // Uint16List 1422 // Uint16List
1402 // Uint32List 1423 // Uint32List
1403 // Uint64List 1424 // Uint64List
1404 // Int8List 1425 // Int8List
1405 // Int16List 1426 // Int16List
1406 // Int32List 1427 // Int32List
1407 // Int64List 1428 // Int64List
1408 // Float32List 1429 // Float32List
1409 // Float64List 1430 // Float64List
1410 // Int32x4List 1431 // Int32x4List
1411 // Float32x4List 1432 // Float32x4List
1412 // Float64x2List 1433 // Float64x2List
1413 int[] bytes [optional]; 1434 string bytes [optional];
1414 1435
1415 // The function associated with a Closure instance. 1436 // The function associated with a Closure instance.
1416 // 1437 //
1417 // Provided for instance kinds: 1438 // Provided for instance kinds:
1418 // Closure 1439 // Closure
1419 @Function closureFunction [optional]; 1440 @Function closureFunction [optional];
1420 1441
1421 // The context associated with a Closure instance. 1442 // The context associated with a Closure instance.
1422 // 1443 //
1423 // Provided for instance kinds: 1444 // Provided for instance kinds:
1424 // Closure 1445 // Closure
1425 @Function closureContext [optional]; 1446 @Context closureContext [optional];
1426 1447
1427 // The referent of a MirrorReference instance. 1448 // The referent of a MirrorReference instance.
1428 // 1449 //
1429 // Provided for instance kinds: 1450 // Provided for instance kinds:
1430 // MirrorReference 1451 // MirrorReference
1431 @Instance mirrorReferent [optional]; 1452 @Instance mirrorReferent [optional];
1432 1453
1433 // The pattern of a RegExp instance. 1454 // The pattern of a RegExp instance.
1434 // 1455 //
1435 // Provided for instance kinds: 1456 // Provided for instance kinds:
(...skipping 653 matching lines...) Expand 10 before | Expand all | Expand 10 after
2089 ## Revision History 2110 ## Revision History
2090 2111
2091 version | comments 2112 version | comments
2092 ------- | -------- 2113 ------- | --------
2093 1.0 draft 1 | initial revision 2114 1.0 draft 1 | initial revision
2094 1.1 | Describe protocol version 2.0. 2115 1.1 | Describe protocol version 2.0.
2095 1.2 | Describe protocol version 3.0. Added UnresolvedSourceLocation. 2116 1.2 | Describe protocol version 3.0. Added UnresolvedSourceLocation.
2096 2117
2097 2118
2098 [discuss-list]: https://groups.google.com/a/dartlang.org/forum/#!forum/observato ry-discuss 2119 [discuss-list]: https://groups.google.com/a/dartlang.org/forum/#!forum/observato ry-discuss
OLDNEW
« no previous file with comments | « runtime/vm/service.cc ('k') | runtime/vm/unit_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698