Commit Graph

33 Commits

Author SHA1 Message Date
Carlo Bernaschina 9ce171ac33 Converted Observatory cpu-profile element
Fixes https://github.com/dart-lang/sdk/issues/26043

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

Review URL: https://codereview.chromium.org/2204563003 .
2016-08-09 14:34:00 -07:00
Carlo Bernaschina a5443086a0 Converted Observatory isolate-summary element
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2217723004 .
2016-08-09 13:15:21 -07:00
Carlo Bernaschina 4329f962b2 Converted Observatory isolate-reconnect element
R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2202973002 .
2016-08-08 13:07:08 -07:00
Carlo Bernaschina 3c786269cb Converted Observatory class-tree element
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2212253002 .
2016-08-05 12:48:07 -07:00
Carlo Bernaschina 60afd8bddd Converted observatory flag-list element
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2213613002 .
2016-08-03 19:53:05 -07:00
Carlo Bernaschina c9b1215870 Converted general-error tag
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2199403002 .
2016-08-03 18:16:19 -07:00
Carlo Bernaschina 937d281f7f Converted Observatory class-ref & library-ref elements
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2204973003 .
2016-08-03 17:48:42 -07:00
Carlo Bernaschina e76ad0353b Converted Observatory code-ref function-ref element
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2194383002 .
2016-08-01 17:23:21 -07:00
Carlo Bernaschina 445180ad41 Converted Observatory source-link & script-ref elements
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2180553002 .
2016-08-01 16:29:49 -07:00
Carlo Bernaschina cb468c2c47 Converted Observatory vm-connect element
R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2180803002 .
2016-07-27 13:43:38 -07:00
Carlo Bernaschina a2b7cf9067 Removed Dead Code
R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2176103002 .
2016-07-25 10:08:59 -07:00
Carlo Bernaschina c6d346d692 Converted Observatory isolate-ref element
R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2178643002 .
2016-07-25 10:00:09 -07:00
Carlo Bernaschina f5e157f7d0 Converted Observatory library-nav-menu element
R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2164903003 .
2016-07-25 09:36:17 -07:00
Carlo Bernaschina 61e34b244b Converted Observatory nav-notify element
Still writing tests.

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

Review URL: https://codereview.chromium.org/2167053002 .
2016-07-24 12:54:04 -07:00
Carlo Bernaschina a459125aa1 Converted Observatory curly-block element
R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2160793004 .
2016-07-21 16:42:46 -07:00
Carlo Bernaschina 250f2a92a4 Converted Observatory view-footer element
R=johnmccutchan@google.com, rmacnak@google.com

Review URL: https://codereview.chromium.org/2154413002 .
2016-07-19 09:43:21 -07:00
Ryan Macnak 435b371cb7 Make the object store visible in Observatory.
R=turnidge@google.com

Review URL: https://codereview.chromium.org/2012333002 .
2016-06-01 13:00:22 -07:00
Ryan Macnak 7bdf01560a Speculatively revert "Make the object store visible in Observatory."
This reverts commit 2eb8408969.

TBR=turnidge@google.com

Review URL: https://codereview.chromium.org/2002253005 .
2016-05-25 17:33:52 -07:00
Ryan Macnak 2eb8408969 Make the object store visible in Observatory.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/2005983002 .
2016-05-25 11:12:32 -07:00
John McCutchan b2249f30fd Add persistent handles to service protocol and Observatory UI
VM Changes:

- Add private _getPersistentHandles service RPC.
- Add service_test for _getPersistentHandles.

Observatory Changes:

- Add Persistent Handles page.
- Display persistent handles in a curly-block
- Display weak persistent handles in a sortable table.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1719313002 .
2016-03-01 07:31:29 -08:00
John McCutchan 43b0ae00e7 Timeline service protocol support with Observatory UI
Service Protocol:
- _clearVMTimeline (clear timeline)
- _getVMTimeline (fetch timeline)
- _setVMTimelineFlag (control recording)
- _getVMTimelineFlag (...)
- _getVMTimeline service unit test

Observatory:
- timeline page with record on/off, clear timeline, and refresh buttons.
- trace-viewer based timeline view that runs in an iframe driven by a small javascript program

Misc:
- Fix default enable logic bugs
- Add 'Debugger Pause' timeline event
- Threads can have a name and that name will be displayed in Observatory
- Tighten up locking when printing JSON

R=rmacnak@google.com

Review URL: https://codereview.chromium.org/1406413006 .
2015-11-10 08:02:22 -08:00
Ryan Macnak 8341085f11 Add view for MegamorphicCache. Update view for ObjectPool.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org/1392953003 .
2015-10-12 13:57:48 -07:00
John McCutchan d3154f4247 Logging page
- Per isolate logging page.
- Drop down to control log level threshold.
- Console area where messages are displayed.
- UI test.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1250853006 .
2015-07-22 14:33:13 -07:00
Ryan Macnak f84461ed48 Observatory improvements for exploring compiled code.
- Views for ObjectPool, Instructions, ICData.
 - Allow querying retained size of non-Instances.
 - References to non-Dart functions as links.
 - Find ic data array from a Function.
 - Fix NPE when current token position in a script inset cannot be mapped.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1212933003.
2015-06-26 14:29:49 -07:00
John McCutchan 851ef4a4af Ports page for isolates
Per isolate list of open ports and their handler

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1189543003.
2015-06-18 10:24:28 -07:00
turnidge@google.com 2757d6e686 Rework error handling in the service protocol and in Observatory.
In JSON RPC, error results and regular results are distinguished structurally.  We now do this in the service protocol instead of returning a regular result with the "Error" type.

VM:

- Add PrintError method to JSONStream.  Use this to generate all errors in the service protocol.

- Fix some bugs with "limit" parameter handling.

- Change return value for heap rpcs when they find a collected/expired reference.

- Update tests.

Observatory:

- Add app.handleExceptions -- this is a widely-used exception handler that puts up a notification when there is an uncaught/unexpected exception.  Added a top-level zone catch that uses this handler, as well as explicit uses of this handler at various points in the code.  Most pages use this implicitly or explictly, except for the debugger page, which displays exceptions in the console.

[ General rule, when a function returns a Future, generally let the error pass through.  If a function does async work but doesn't return the Future, then it should handle errors explicitly by calling app.handleExceptions, etc. ]

- Fixed notifications.  They were generally broken.  Some hard-coded type names needed to be fixed, some hacks needed to be removed.

- Add a new class RpcException and a variety of subclasses which capture the error cases when making an rpc.

- Redo refresh buttons so their callbacks return Futures instead of taking a "done" closure.  Cleaner.  Allows us to move error handling outside of the callback.

- Drop ServiceError, ServiceException and the associated views.

- Redo notifications so that event and exception notifications are supported.

- No longer null out the vm when it is disconnected.

- Remove notifications when we visit the vm-connect page.  Only show the "Proceeding will lose current page" dialog when we aren't on the vm-connect page already.

- Improve error message on cpu profile page when profiling is disabled on the VM.

- Allow variables to wrap on debugger page.

- Make eval-box and eval-link tolerant of errors during rpc.  Make the errors display nicely.

- When a breakpoint is marked "not possible", make sure it disappears.  This got broken during script view refactor.

- Drop vm's errors and exceptions streams.  No longer needed.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45792 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-14 19:34:37 +00:00
rmacnak@google.com 6b85ce75dc When attempting to navigate to a page for an isolate that doesn't exist, offer to visit the same page for the each of the isolates that currently exist.
- Remove trailing slash from vm-connect page for uniformity with other pages
- Fix script-inset sizing.

R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45472 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-01 18:39:19 +00:00
rmacnak@google.com 0184cf0eca Add links to Observatory documentation and bug tracking.
BUG=http://dartbug.com/23224
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45428 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-27 17:25:33 +00:00
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 4526f3ed72 Improve performance of table trees by around 3x
*) Stop using Polymer's template repeat for building table trees.
*) Refactor TableTree and TableTreeRow to be easier to use without template repeat.
*) Port class tree to new TableTree interface.
*) Rename isolate-profile to cpu-profile.

R=rmacnak@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42755 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-09 22:03:14 +00:00
johnmccutchan@google.com 261200c587 Build Observatory as part of runtime
Relanding https://codereview.chromium.org/810623005/

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42645 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-06 21:59:42 +00:00
whesse@google.com aa5a986d5d Revert "Build Observatory with runtime"
This reverts commit 76df7b3c1bf83c08d3994d61df4c9c530fadb4e5.
This commit breaks dartium compilation.

BUG=
R=ricow@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42619 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-06 10:07:58 +00:00
johnmccutchan@google.com 9d6ac72b46 1) Remove prebuilt Observatory sources
2) Move observatory from runtime/bin/vmservice/observatory to runtime/observatory

3) Add two tools scripts:
- tools/run_pub.py (runs pub before SDK is built)
- tools/obs_tool.py (helper for get, build, and deploy stages)

4) Build Observatory with runtime:
- pub get --offline
- pub build
- deploy

5) Build artifacts are now in standard output directory, for example, out/DebugIA32/observatory.

6) Add a new 'dart_boostrap' host target (no snapshot, no observatory) that can be used as the Dart executable to run pub when building Observatory. This is behind a build.py flag --use-bootstrap-for-observatory because:

- It is only necessary on older Linux distributions that are incompatible with the prebuilt Dart testing executable.
- running pub build with the boostrap Debug build is significantly slower.

7) Detect if the prebuilt executable doesn't work and automatically switch to the 'dart_bootstrap' executable. Also, warn the user and provide a Wiki link with more information.

R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@42614 260f80e4-7a28-3924-810f-c04153c831b5
2015-01-05 21:26:52 +00:00