Commit Graph

31 Commits

Author SHA1 Message Date
turnidge@google.com d554f4fbfe Finish moving service protocol to json rpc.
Service

- Remove support for old-style service requests.

- Drop 'arguments' from JsonStream and ServiceRequestHandler.

- Json-rpc inspired renaming: command->method, options->params all over.

- Implement getFlagList, setFlag, getObjectByAddress.

- Add helpers PrintMissingParamError and PrintInvalidParamError
  to make our error messages more regular.

- Update tests.

- Service_SetSource removed for now.  John will resurrect.

Observatory

- Drop all Deprecated 'get' functions.  We now use json rpc for everything.

- Drop 'link' and 'relativeLink' from ServiceObject -- they were
  ui-specific and they are no longer meaningful anyways.  Use 'id' instead.

- New pages: VMPage, FlagsPage, InspectPage, ErrorPage.  All urls
  used by Observatory are now 'new school' and have a proper
  prefix.  ErrorPage is the new catch-all.

- Pages now use a Uri instead of a url String.  This lets them
  grab query parameters more easily.

- SimplePage replaces IsolateSuffixPage.

- We now use gotoLink() or makeLink() to make our navigation
  links.  gotoLink gets some optional parameters to make it
  easier to construct links to ServiceObjects.

- Rework mouse clicks on the heap map to use getObjectByAddress.

- Remove the breakpoint_list.  It wasn't working.  I'll add it back later.

- Silence logging of getIsolateMetric/getVMMetric.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//897193002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43514 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-05 17:45:52 +00:00
johnmccutchan@google.com 9d1bb3aa6b Port type arguments to new RPC protocol
R=turnidge@google.com

Review URL: https://codereview.chromium.org//887413003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43428 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-03 21:26:19 +00:00
turnidge@google.com e65e6fab9d Begin migrating the vm service from a rest-style interface to a json-rpc style interface.
BUG=

Review URL: https://codereview.chromium.org//823403004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@43370 260f80e4-7a28-3924-810f-c04153c831b5
2015-02-02 23:15:40 +00:00
asiva@google.com ca1c3241c4 Fix for issue 21398.
Accept only 'literal-like' objects when sending messages to isolates
spawned using spawnURI. Allow all objects for isolates spawned using
spawnFunction.

R=iposva@google.com

Review URL: https://codereview.chromium.org//834233003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42793 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-12 23:14:30 +00:00
rmacnak@google.com 128148aafc Preserve the contents of Dart strings with unmatched surrogate halfs by avoiding a UTF16 -> UTF8 -> UTF16 conversion.
Clean up some confusion between code points and code units.

BUG=http://dartbug.com/20583
BUG=http://dartbug.com/20874
R=turnidge@google.com

Review URL: https://codereview.chromium.org//558853004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40174 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-11 18:42:04 +00:00
rmacnak@google.com 27b99b257c Don't double-escape strings in the VM Service, and don't use \u0000 to determine the string length.
This makes characters above ASCII to display as themselves in Observatory, strings with \u0000 in the middle not to be truncated, and avoids a bug in the previous escaping where a non-ASCII character in the last position would have its escaped representation cut off.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//542363003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@40060 260f80e4-7a28-3924-810f-c04153c831b5
2014-09-09 21:34:06 +00:00
johnmccutchan@google.com 3299ed4a81 - Add VMMetric and some sample metrics
- Per isolate:

* heap.old.used
* heap.old.capacity
* heap.old.external
* heap.new.used
* heap.new.capacity
* heap.new.external

- VM:

* vm.isolate.count

- New metrics service namespace: /metrics/vm/...

R=koda@google.com

Review URL: https://codereview.chromium.org//464953002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39305 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-15 17:35:00 +00:00
turnidge@google.com 7595f9e69e Add breakpoints and single-stepping to Observatory.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//381383010

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38654 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-28 23:08:47 +00:00
regis@google.com 1186078de6 Add support to trace warnings in TraceBuffer.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//328663008

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37298 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-13 00:47:15 +00:00
iposva@google.com 651ded192e - Add possibility to redirect messages if they were not delivered.
- Prepare OOB handling for more than service messages.
- Do not use growable arrays when growing is not necessary.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//300223011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36772 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-28 21:58:33 +00:00
turnidge@google.com 78f3f14635 Add pause/resume for isolates in vmservice/observatory.
Improve the isolate view and isolate summary.

Details:

- Rig DbgMsgQueueList so it can run even when the debugger hasn't started.

- Add <action-link> element for pause/resume actions.

- Introduce new flex-percentile css classes.

- Add <isolate-run-state>, <isolate-location>, <isolate-shared-summary>, and <isolate-counter-chart> elements.  Counters are now displayed as a pie chart instead of as text.

- Reorg <isolate-view> and <isolate-summary> substantially.

- Add shared style sheet to <script-view>.

- Combine pause-on-start/pause-on-exit with other debugger pause events and present a consistent representation for these in the vm service.  Reorg how pause events are shown in <isolate-run-state>.

- Give the user a nicer message when an isolate is still loading.

- Move the /resume command to /debug/resume.  Implement this with a bool in the Isolate class which is used to smuggle resume requests from the vm service to the dart embedding api.

- Add the /debug/pause command to the vm service

- Break the DebuggerEvent struct out into its own top-level class.  Add JSON printing.

etc.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//271153002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36366 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-20 17:09:08 +00:00
turnidge@google.com 9243ffc4ff Always use the same json for null in the vm service.
PrintToJSONStream -> PrintJSON.

ALSO:

Fix <em> tags in the Observatory.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//257053003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35532 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-29 18:10:02 +00:00
iposva@google.com fd8565b071 - Add a minimal implementation of Capability.
- Make RawReceivePort and SendPort VM internal objects.
- Rationalize the creation of ports and their handling within the VM.

R=asiva@google.com

Review URL: https://codereview.chromium.org//243973002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35325 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-23 19:44:03 +00:00
johnmccutchan@google.com ab19ef4f31 Redo allocationprofile options
BUG=
R=turnidge@google.com

Review URL: https://codereview.chromium.org//217323006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34620 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-01 22:05:39 +00:00
turnidge@google.com 9c5c7040dc Add a VM page to the observatory.
Make the VM a ServiceObject.  Some refactoring in the ServiceObject
implementation.

IsolateList is no longer a ServiceObject.  It should eventually become more like our caches.

Support the /vm request in the vm.  Remove isolate list request.

Improvements to Isolate::PrintToJSONStream: always provide a
reasonable name.  Use the same code to produce isolate refs and
non-refs.

Improve isolate status message when the isolate is paused at
start/exit.  Add a resume link to the isolate view.

Add a navbar to the error page so that dartium users are less likely
to get stuck.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//206213004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34204 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-20 21:00:10 +00:00
johnmccutchan@google.com 6edd276df8 Switch Observatory to use only ServiceObject instances.
All fetched objects are upgraded to a ServiceObject.
ServiceObjectCache.
Uniform updating / refreshing.
Fix UTF8 string escaping in TextBuffer (should fix invalid character bug https://code.google.com/p/dart/issues/detail?id=16590)

R=turnidge@google.com

Review URL: https://codereview.chromium.org//192443004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33541 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-11 17:48:09 +00:00
johnmccutchan@google.com 0f79171efb Add user resetable accumulator to allocation profiler.
Display aggregate of new and old space in a separate table.
Speed up display of tables by 10x.
Fix heap display bug (heap stats were always for new space).
Keep sort across refreshes.

R=turnidge@google.com

Review URL: https://codereview.chromium.org//173013004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33220 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-03 15:39:06 +00:00
johnmccutchan@google.com 1baf2b8e16 Trace VM service requests
BUG=
R=turnidge@google.com

Review URL: https://codereview.chromium.org//164503002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32751 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-18 17:50:26 +00:00
turnidge@google.com 174bc974bd Add expandable instances and lists to the vm service.
Review URL: https://codereview.chromium.org//164183003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32707 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-14 17:48:25 +00:00
turnidge@google.com 12f8555b19 Allow root level requests in the vm service.
Move /cpu to the root level.

Move PostReply to the command handlers.  This will allow command
handlers to reply asynchronously (by delegating elsewhere) if they
need to.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//131973007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31849 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-15 20:45:39 +00:00
hausner@google.com 15e8f121dd Change how debugger handles source breakpoints
- Identify a source breakpoint by a script and a token position
  rather than a function object.
- When a new breakpoint is set, iterate over all compiled functions
  to see whether code breakpoints must be set.

This change fixes issues with functions that get compiled several
times, for example as implicit closures or a copies of mixin
functions or local closures of mixing functions. We did not detect
all duplicates of functions.

Eliminated recently introduced const modifiers in SourceBreakpoint
class. They tend to be in the way because several accessor methods
of SourceBreakpoint compute data lazily and modify the object as a
side effect.

Review URL: https://codereview.chromium.org//117133005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31372 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-26 20:53:58 +00:00
turnidge@google.com b640712e6b Handle vmservice messages while at breakpoint.
Allow rudimentary inspection of breakpoints from vmservice.

R=hausner@google.com, johnmccutchan@google.com

Review URL: https://codereview.chromium.org//113513004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31233 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-18 17:45:17 +00:00
turnidge@google.com 21b867f851 Add an instance view page to the vmservice.
We can use this view to browse the field values of objects and explore
the heap a bit.

----------

Add field lists to the class and instance view pages.

Add field-ref and instance-ref elements.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//110703002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31074 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-11 18:03:42 +00:00
iposva@google.com 52a736ee38 - Disallow copy constructors.
Review URL: https://codereview.chromium.org//23903034

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27346 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-10 17:47:55 +00:00
iposva@google.com 74b2a34d5b - Base JSON stream printing on stack objects.
- Simplify creation of a JSONStream.

- Add experimental coverage output to the VM.

R=asiva@google.com, johnmccutchan@google.com

Review URL: https://codereview.chromium.org//23875015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27344 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-10 17:21:59 +00:00
jacobr@google.com 605b33c1bc fix cpp11 compile errors
R=asiva@google.com

Review URL: https://codereview.chromium.org//23072026

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26387 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-20 20:24:11 +00:00
johnmccutchan@google.com 6424b00fa2 Escape strings when writing to JSON.
BUG=
R=regis@google.com

Review URL: https://codereview.chromium.org//22599002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25897 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-07 19:52:32 +00:00
johnmccutchan@google.com 631b2d3773 Expose arguments and options to handlers through JSONStream
R=asiva@google.com

Review URL: https://codereview.chromium.org//22238002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25814 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-06 14:46:20 +00:00
johnmccutchan@google.com 97ef50a1b2 Support stacktrace and objecthistogram service commands
R=asiva@google.com

Review URL: https://codereview.chromium.org//19870006

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25726 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-02 00:24:09 +00:00
johnmccutchan@google.com 0ba453b4b6 JSONStream Print Dart Objects
R=iposva@google.com

Review URL: https://codereview.chromium.org//18472009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24841 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-09 14:07:14 +00:00
johnmccutchan@google.com b7608cc5a4 JSONStream and tests
R=iposva@google.com

Review URL: https://codereview.chromium.org//18168003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24697 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-02 16:58:02 +00:00