Index: runtime/vm/service/service.md |
diff --git a/runtime/vm/service/service.md b/runtime/vm/service/service.md |
index c18f390d9bc59962a9686c5b0dea7e7e7e99e268..5a6d6d64962dca8d8a1aa1d1f8937b4853a4c037 100644 |
--- a/runtime/vm/service/service.md |
+++ b/runtime/vm/service/service.md |
@@ -1,8 +1,8 @@ |
-# Dart VM Service Protocol 2.0 |
+# Dart VM Service Protocol 3.0 |
> Please post feedback to the [observatory-discuss group][discuss-list] |
-This document describes of _version 2.0_ of the Dart VM Service Protocol. This |
+This document describes of _version 3.0_ of the Dart VM Service Protocol. This |
protocol is used to communicate with a running Dart Virtual Machine. |
To use the Service Protocol, start the VM with the *--observe* flag. |
@@ -68,6 +68,7 @@ The Service Protocol uses [JSON-RPC 2.0][]. |
- [Message](#message) |
- [Null](#null) |
- [Object](#object) |
+ - [Response](#response) |
- [Sentinel](#sentinel) |
- [SentinelKind](#sentinelkind) |
- [Script](#script) |
@@ -76,7 +77,7 @@ The Service Protocol uses [JSON-RPC 2.0][]. |
- [StepOption](#stepoption) |
- [Success](#success) |
- [TypeArguments](#typearguments) |
- - [Response](#response) |
+ - [UresolvedSourceLocation](#unresolvedsourcelocation) |
- [Version](#version) |
- [VM](#vm) |
- [Revision History](#revision-history) |
@@ -109,7 +110,7 @@ Here is an example response for our [getVersion](#getversion) request above: |
"jsonrpc": "2.0", |
"result": { |
"type": "Version", |
- "major": 2, |
+ "major": 3, |
"minor": 0 |
} |
"id": "1" |
@@ -299,7 +300,7 @@ version number: |
``` |
"result": { |
"type": "Version", |
- "major": 2, |
+ "major": 3, |
"minor": 0 |
} |
``` |
@@ -371,13 +372,29 @@ in the section on [public types](#public-types). |
``` |
Breakpoint addBreakpoint(string isolateId, |
- string scriptId, |
- int line) |
+ string scriptId [optional], |
+ string scriptUri [optional], |
+ int line, |
+ int column [optional]) |
``` |
The _addBreakpoint_ RPC is used to add a breakpoint at a specific line |
of some script. |
+The _scriptId_ or _scriptUri_ parameter is used to specify the target |
+script. One of these two parameters must always be provided. |
+ |
+The _line_ parameter is used to specify the target line for the |
+breakpoint. If there are multiple possible breakpoints on the target |
+line, then the VM will place the breakpoint at the location which |
+would execute soonest. If it is not possible to set a breakpoint at |
+the target line, the breakpoint will be added at the next possible |
+breakpoint location within the same function. |
+ |
+The _column_ parameter may be optionally specified. This is useful |
+for targeting a specific breakpoint on a line with multiple possible |
+breakpoints. |
+ |
If no breakpoint is possible at that line, the _102_ (Cannot add |
breakpoint) error code is returned. |
@@ -759,7 +776,7 @@ will be the _OptimizedOut_ [Sentinel](#sentinel). |
class Breakpoint extends Object { |
int breakpointNumber; |
bool resolved; |
- SourceLocation location; |
+ SourceLocation|UnresolvedSourceLocation location; |
} |
``` |
@@ -1787,6 +1804,21 @@ class Object extends Response { |
An _Object_ is a persistent object that is owned by some isolate. |
+### Response |
+ |
+``` |
+class Response { |
+ // Every response returned by the VM Service has the |
+ // type property. This allows the client distinguish |
+ // between different kinds of responses. |
+ string type; |
+} |
+``` |
+ |
+Every non-error response returned by the Service Protocol extends _Response_. |
+By using the _type_ property, the client can determine which [type](#types) |
+of response has been provided. |
+ |
### Sentinel |
``` |
@@ -1955,20 +1987,42 @@ class TypeArguments extends Object { |
A _TypeArguments_ object represents the type argument vector for some |
instantiated generic type. |
-### Response |
+### UnresolvedSourceLocation |
``` |
-class Response { |
- // Every response returned by the VM Service has the |
- // type property. This allows the client distinguish |
- // between different kinds of responses. |
- string type; |
+class UnresolvedSourceLocation extends Response { |
+ // The script containing the source location if the script has been loaded. |
+ @Script script [optional]; |
+ |
+ // The uri of the script containing the source location if the script |
+ // has yet to be loaded. |
+ string scriptUri [optional]; |
+ |
+ // An approximate token position for the source location. This may |
+ // change when the location is resolved. |
+ int tokenPos [optional]; |
+ |
+ // An approximate line number for the source location. This may |
+ // change when the location is resolved. |
+ int line [optional]; |
+ |
+ // An approximate column number for the source location. This may |
+ // change when the location is resolved. |
+ int column [optional]; |
+ |
} |
``` |
-Every non-error response returned by the Service Protocol extends _Response_. |
-By using the _type_ property, the client can determine which [type](#types) |
-of response has been provided. |
+The _UnresolvedSourceLocation_ class is used to refer to an unresolved |
+breakpoint location. As such, it is meant to approximate the final |
+location of the breakpoint but it is not exact. |
+ |
+Either the _script_ or the _scriptUri_ field will be present. |
+ |
+Either the _tokenPos_ or the _line_ field will be present. |
+ |
+The _column_ field will only be present when the breakpoint was |
+specified with a specific column number. |
### Version |
@@ -2020,6 +2074,8 @@ class VM extends Response { |
version | comments |
------- | -------- |
1.0 draft 1 | initial revision |
+1.1 | Describe protocol version 2.0. |
+1.2 | Describe protocol version 3.0. Added UnresolvedSourceLocation. |
[discuss-list]: https://groups.google.com/a/dartlang.org/forum/#!forum/observatory-discuss |