Commit Graph

678 Commits

Author SHA1 Message Date
John McCutchan f01b6dd5b2 privatize and remove some fields in Isolate response
- Remove features
- Make heaps -> _heaps
- Make tagCounters -> _tagCounters.

R=turnidge@google.com

Review URL: https://codereview.chromium.org//1156183002
2015-05-26 14:05:50 -07:00
Todd Turnidge 0967b63073 Add the streamListen and streamCancel rpcs to the vm service.
We currently support 5 streams: Isolate, Debug, GC, _Echo, and _Graph.

    Only generate events when at least one client is listening to the
    corresponding event stream.

    Only send events to the clients that actually request them.

    Implement this all as Dart streams in the service lib.

    Update tests.  Fix a race in async_generator_..._test that was biting me.

Review URL: https://codereview.chromium.org//1143783003
2015-05-26 13:52:35 -07:00
Ryan Macnak e674f0dc62 Revert "Per-closure breakpoints; restructure breakpoint implementation to keep a list of conditions."
This reverts commit d37149ad3b.

Review URL: https://codereview.chromium.org//1145053004
2015-05-21 17:20:57 -07:00
Ryan Macnak d37149ad3b Per-closure breakpoints; restructure breakpoint implementation to keep a list of conditions.
BUG=
R=hausner@google.com

Review URL: https://codereview.chromium.org//1146173003
2015-05-21 16:52:08 -07:00
John McCutchan d075f24f82 Fix reload() for VM object
Calling reload() on a VM didn't reload the VM because it lacks an id.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1129423003
2015-05-19 16:20:21 -07:00
rmacnak@google.com 06bd41df60 Use words please.
eval -> evaluate

isolate.evaluate(object, expression) -> object.evaluate(expression)

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45823 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-15 20:28:28 +00: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 69eea9a3c4 Add annotations for field and class declarations.
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45781 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-13 21:06:42 +00:00
johnmccutchan@google.com f4c3119a2e Add Service ID zones to service protocol
- Add ServiceIdZone interface for getting temporary ids.
- Add RingServiceIdZone which uses the isolate's object id ring.
- Add GrowableServiceIdZone which uses a growable array.
- Unit tests for ServiceIdZones.
- JSONStream has a service id zone.
- Default service id zone is ring with eager id allocation.
- All service RPCs can include a _serviceIdZone parameter.
- Value of _serviceIdZone can be Ring.NewId or Ring.ExistingId.
- All ObjectIdRing usage in object.cc has been replaced with `jsobj.AddServiceId("id", *this);`
- Add a policy for id reuse to ObjectIdRing::GetIdForObject
- ObjectIdRing can dump its contents to JSON.
- Add _dumpRingRequests RPC which dumps the isolate's ring.
- _getCrashDump includes complete object id ring.

R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45754 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-12 23:48:01 +00:00
johnmccutchan@google.com 8c10ef0558 Show tooltip with local variable value in Observatory debugger
- Add LocalVariableAnnotation to script-inset
- Tweak shortName for a closure
- Teach Script how to find local variable locations (not perfect yet)
- Send tokenPos and endTokenPos for debugger local variables

Performance improvements:
- Reduced script-inset update/computeAnnotations calls from 5 to 1 for each stack frame that is opened

R=rmacnak@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45725 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-12 02:41:43 +00:00
rmacnak@google.com 016214f002 Add Debugger.inspect. 1976 here we come!
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45664 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 22:18:43 +00:00
rmacnak@google.com d36add736d Make copying from script insets omit line numbers and breakpoint indicators.
Review URL: https://codereview.chromium.org//1137523002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45652 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-08 19:58:29 +00:00
rmacnak@google.com b48fc7a2f4 Make script-insets obey their bounds, and other padding tweaks.
R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45570 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-06 17:10:43 +00:00
johnmccutchan@google.com 2f7cff7170 Display isolate message queue in Observatory debugger
- Log the parameters to RPCs
- Display messages like stack frames
    - handler function and script visible
    - message preview instead of local variables
- Expanded and previewed messages do not collapse when stepping within the existing message
- Mark patch classes as finalized to avoid ASSERT on class_finalizer.cc:2358 **
- Support iterating over message queues
- Support printing the message queue as JSON
- Inhibit OOB messages from being handled if we are iterating over the message queue
    - avoids dead lock when looking up port handler (done in Dart code with message handler locked) and a stack overflow trigger to handle OOB messages
- make getObject understand message ids
- Fix dartbug.com/23355

** Need to discuss with Ivan and Matthias (reviewed code differs from committed code but matches my fix):
https://codereview.chromium.org//828353002
https://code.google.com/p/dart/source/detail?r=42612

R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45505 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-04 20:20:44 +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 18a5d6f392 Add breadcrumb for the VM.
R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45471 260f80e4-7a28-3924-810f-c04153c831b5
2015-05-01 18:23:24 +00:00
johnmccutchan@google.com c670979533 - Fully load both Dart and Stub code kinds
- Ouptut "_optimized" field for fake code objects.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45433 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-27 22:00:18 +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
johnmccutchan@google.com e23be8563a Fixes to enable building dart:io implementation cleanly in mojo tree
+ make Observatory respect script line offsets (which Sky uses).

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45427 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-27 14:46:32 +00:00
rmacnak@google.com 9b245afa1e Fix showing values of instance fields.
BUG=
R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45411 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-24 20:13:42 +00:00
johnmccutchan@google.com 583f48a132 Add crash dumps to service protocol and Observatory
- Add _getCrashDump RPC
- crash dump service response is map of request uris to responses, includes:
  -- getVM
  -- getFlagList
  -- for each isolate:
      -- getIsolate
      -- _getAllocationProfile
      -- getStack
- Add FakeVM to service library
- Add load crash dump to Observatory connect page
- Removes old chromium target support from connect page
- Make debugger page display stack even if libraries can't be loaded
- Fix reload of vm-connect page
- Fix polymer initialization calls

R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45390 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-24 00:08:07 +00:00
turnidge@google.com d9f65329c3 Do not JSON encode the 'result' of a service rpc.
Before a response looked like this...

{ result:<string> id:* }

...where result was always a json encoded string.  This meant that
users of the service protocol had to json decode both the outer
message and the result, which was silly.

Now a response looks like this:

{ result:<map> id:* }

This means that users of the service protocol only need to decode once.

We have changed event formats as well.  Previously, an event looked like this:

{ result:<string> }

(Essentially a result without an id.)  The result was json encoded,
requiring the user to double-decode.

Now an event looks like this:

{ event:<map> }

This allows us to distinguish events from rpc results and avoids
double-decoding.  It also avoids having an id-less rpc result mistaken
for an event.

------------

Some details and associated changes:

- Unify GCEvent and ServiceEvent in the VM.

- Move sequence number handling out of dart code and into JSONStream
  in the VM.  Plumbing.  I needed to do this to avoid double-encoding.
  Some of the dart code gets a bit simpler.

- Update C++ tests to have a sequence number.

- Change format of method/params used in Error responses to be more json-y.

- Strip out double decoding in the service lib.

- Improvements to tests.  I was running into some races and other issues.

- Fail fast when we run into a message decoding problem.  Instead of
  returning a service exception, we now disconnect from the vm.

- VMDisconnected => ConnectionClosed.

- Add some support for a reason string when disconnecting from the vm
  in the service library.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45378 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-23 17:55:08 +00:00
rmacnak@google.com 948e638dd8 Fix script-view. Hide annotations except the current position when debugging.
Review URL: https://codereview.chromium.org//1079163009

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45364 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 20:49:33 +00:00
johnmccutchan@google.com 73fe0259ff CPU profile displayed in three tables with a tree
Table #1:
All functions sortable on inclusive or exclusive.

Table #2:
Callers of focused function.

Table #3:
Callees of focused function.

Tree:
Inclusive or Exclusive rooted profile tree filtered by focused function.

Also includes:

- Kill LinkLocationManager.
- Merge HashLocationManager into LocationManager.
- Kill nav-control element.
- Add goParameter to navigate based on page parameters (e.g. ?isolateId=...).

R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45348 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 14:05:20 +00:00
rmacnak@google.com 529993214f Fix missing annotations in script inset when first annotation is outside the subset of lines being displayed.
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45326 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-22 00:42:55 +00:00
turnidge@google.com ca5de9eac9 Kill service_test.cc tests in favor of dart tests for the service protocol.
Associated cleanups and fixes that I noticed as I rewrote the tests.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45257 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-17 21:08:02 +00:00
johnmccutchan@google.com 900f88389c Set version back to 111
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45255 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-17 20:35:43 +00:00
johnmccutchan@google.com 75ac0ef5e8 Analytics version for 1.10
TBR=iposva

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45254 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-17 20:31:50 +00:00
rmacnak@google.com 899490d306 Add annotation for function declarations. Mark functions with performance problems in red.
Reduce the saturation of the coverage markers.

Creating service-refs is horribly expensive: build the details for call sites and function declarations lazily.

Report is_inlinable instead of CanBeInlined because the latter depends whether the function currently has code or breakpoints.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45217 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-16 19:06:35 +00:00
johnmccutchan@google.com 138828554a Add page view analytics to Observatory
BUG=
R=sethladd@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45215 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-16 16:36:27 +00:00
turnidge@google.com 6f519e9d96 Fix all Observatory warnings/errors.
BUG=
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45032 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-09 20:30:59 +00:00
koda@google.com ea5a3de93d Fix auto-refresh in Heap profile.
To avoid lag when the profile page cannot keep up with the GC events,
keep at most one outstanding auto-refresh request (but make sure to refresh
up to and including the latest GC).

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45015 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-09 16:01:39 +00:00
turnidge@google.com fb591fc36a Continue improving the documentation for the vm service protocol.
Clean up the protocol a bit as I go.

---

Addendum:

Clean up inconsistencies between field and function ownership in the protocol.

Change the names of implicit closure functions (!)

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44923 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-06 19:24:47 +00:00
rmacnak@google.com 7b24669458 Display multiline strings as multiline in Observatory's inspector.
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44892 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-03 21:30:50 +00:00
turnidge@google.com 52538c5315 Tidy up the service protocol. Begin improving the documentation.
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44865 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-02 19:16:35 +00:00
rmacnak@google.com 61639129a7 Call site data UI tweaks.
- Make calls have the same cursor as links.
 - Highlight a call site when its data it visible.
 - Don't display the table header when a call site has no data.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44840 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-01 19:43:36 +00:00
turnidge@google.com d6561a3667 Fix some Observatory issues that crept in with my last couple changes.
- need ObservatoryApplication class in ObservatoryDebugger
- mainPort is gone now

BUG=
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44818 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-31 19:33:38 +00:00
turnidge@google.com 140a071acb Allow Observatory debugger to switch isolates.
- Add the "isolate" command which allows the user to switch isolate by name or number.  Supports completion.

- Add the "isolate name" command which allows the user to rename an isolate.  Add the "setName" method to the service protocol to support this.  Isolates now have a debugger_name() in the vm.

- The new IsolateUpdate event notifies the client when an isolate name changes.

- When an isolate is updated, update the page's isolate too, so the navbar is accurate.

- Update isolate summary to display isolate number.

- Rework how the isolate's name is computed because we were getting garbagey names in the IsolateStart event (SpawnState was not yet set).

- Make sure that the debugger doesn't subscribe to events multiple times.

- "info isolates" is now "isolate list".

- Rework reporting of vm and isolate startTime in the service protocol and in Observatory.

- Fix bug in command completion when subcommands and other completions share common prefixes.

- Rework isolate accounting in the VM object in Observatory.  We now create Isolates in getFromMap rather than from IsolateStart events, per se.  Rewrite the isolate updating code.

- IsolateStart and IsolateExit events are now owned by the Isolate itself, rather than the vm.

- Return the actual result in pause/resume/etc.

- Add assertion in JSONStream::PrintProperty64 that the result fits in a javascript double.  Sigh.

- Stop sending GC events for the service isolate.  Add assertions to guard against this happening in the future.

- Misc improvements in error reporting.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44718 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-26 19:06:18 +00:00
johnmccutchan@google.com 942d654d31 Disable allocation page auto refresh on GC
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44669 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-24 15:39:43 +00:00
johnmccutchan@google.com 867b56f066 Fix reuse of <ref> elements
BUG=
R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44668 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-24 15:10:49 +00:00
rmacnak@google.com 3b8bed46a8 Display ICData entries at call sites, with links to the targets and guarded classes. Implement service response for call site data for the same targets as coverage. Fix JSONifying ICData for super calls.
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44564 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-18 20:28:26 +00:00
johnmccutchan@google.com 8f2f5fa3bf Profiler fixes for 1.9
- Make the first level of a non-VM tree % consistent with self %
- Always tick the [Truncated] tag for inclusive trees.
- Don't show call tree direction drop down at all.
- Additional tracing.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44525 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-16 22:21:12 +00:00
rmacnak@google.com e1bbc90322 Display call site data for functions.
- Requested with coverage data, only in function view for now.
 - Adjust token position associated with ICData to correspond to the identifier instead of the open paren.
 - Fix JSONifying ICs for static/constructor calls.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44476 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-13 20:44:41 +00:00
turnidge@google.com 1989cc3ac8 Yesterday's deadlock fix was wrong. It could drop notifications.
BUG=
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44382 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-10 18:15:37 +00:00
turnidge@google.com 1f851c718c Implement 'print', 'up', 'down', and 'frame' commands in the Observatory debugger.
Implement in-frame evaluation in the vm service.

Add a notion of 'current frame' and use it across the debugger,
particularly in source-location based commands (break, clear).

Change the expansion logic for frames, so that by default only the
current frame is shown.  When a user expands a frame it is now pinned.

Change command line parsing so that internal whitespace is preserved.  We need this to properly evaluate expressions with internal whitespace.

Fix a deadlock in the debugger message loop.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44353 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-10 00:07:45 +00:00
turnidge@google.com 6897391cd5 Allow command aliases in Observatory debugger.
This will let us use 'c' for continue even though it is ambiguous.

Add aliases to the 'help' output.

BUG=
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44269 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-05 19:43:40 +00:00
turnidge@google.com f9f2d9c017 Major rework of vm service events
--------
VM

Add a new ServiceEvent class in the vm.  Rework the event type names.

Add BreakpointAdded, BreakpointResolved, and BreakpointRemoved
service events.

Record the top frame for kIsolateInterrupted and kExceptionThrown
debugger events.

Send a top frame in more Pause* events.

Send breakpoint list with the Isolate response.  Remove the
getBreakpoints method from the vm service.

Move Resume events into debugger.cc.

Rework MessageHandler a bit so that we can send PauseStart and
PauseExit notifications.

--------
Observatory

Move some event handler from Application to Isolate.

Rewrite breakpoint tracking code to use the new breakpoint events.

Change run state tracking in Isolate.

Change getFromMap so that it applies updates if the map isn't a ref.

Use getFromMap instead of new ServiceObject in invokeRpc.  This
fixes some duplicate ServiceObject problems.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44268 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-05 19:02:42 +00:00
rmacnak@google.com 8612ffdd4e Restore highlighting for current position.
R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44214 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-04 01:18:42 +00:00
johnmccutchan@google.com b69bab6a6f Fix memory leak in CPU Profile page
- Programmatically clear all onClick listeners.
- Use an iterative call tree loader.
- Load call trees on demand.
- When a sample was filled before exhausting the call stack, mark that the sample's call stack is truncated.
- Insert '[Truncated]' tag nodes into call trees.

R=rmacnak@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44190 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-03 19:00:20 +00:00
johnmccutchan@google.com 78ad7f347b Improved profiler view and inclusive profile tree
TableTree improvements:
- Row's have flex-box divs in each table cell.
- To represent depth in tree a colored vertical bar for each depth level is shown
- Expanding tree nodes is now asynchronous and animates.
- Change cursor during tree expansion.

Observatory Profiler improvements:
- Improved appearance.
- Support for inclusive (main first) call trees.
- Replace tooltip hover with info toggle.
- Visual icon attributes for code, functions and call tree nodes.
- Fetching / Load status display.
- Cleaned up Code and Function kinds.

Profiler improvements:
- When not profiling the VM (--profile-vm) only walk the stack when we are in Dart code or have exited Dart code. This removes some native stack walker noise.
- Build inclusive (main first) call trees and send across service.

Notes for analyzer team:

Analyzer command line:

./out/ReleaseIA32/dart --keep-code --trace-profiler --profile-depth=128 --observe out/ReleaseIA32/dart-sdk/bin/snapshots/dartanalyzer.dart.snapshot --dart-sdk=out/ReleaseIA32/dart-sdk pkg/compiler/lib/src/dart2js.dart

Profiler settings:

- Tags: None or VM
- Mode: Function
- Direction: Bottom up

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

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@44152 260f80e4-7a28-3924-810f-c04153c831b5
2015-03-02 23:01:43 +00:00