Commit Graph

678 Commits

Author SHA1 Message Date
John McCutchan 4e9716ee40 Update view footer with github bug report url
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1254413011 .
2015-07-31 14:23:45 -07:00
John McCutchan de035901a1 Introduce two utility elements for the cpu profiler
- Add <sample-buffer-control> which manages fetching a sample buffer from an isolate.
- Remove duplicate code by using <sample-buffer-control> in both the tree and table profile views.
- Add <stack-trace-tree-config> which manages how a stack trace tree should be displayed (function or code objects, bottom up or top down).
- Remove duplicate code by using <stack-trace-tree-config> in both the tree and table profile views.

This is the first of many CLs refactoring the CPU profile related code in Observatory. This introduces some naming inconsistencies (CpuProfile vs. SampleBuffer) that will converge to SampleBuffer over time.

R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1266193003 .
2015-07-31 14:19:17 -07:00
Rico Wind 93ec16c34c Nuke some whitespace in observatory
R=johnmccutchan@google.com
BUG=

Review URL: https://codereview.chromium.org//1255273007 .
2015-07-30 17:47:50 +02:00
John McCutchan d9394ac865 Fix exception on first navigation to metrics page
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1262003002 .
2015-07-28 16:13:09 -07:00
Ryan Macnak 8c98455ab5 Retaining path improvements.
- Don't answer retaining paths that go through ICData.
 - Associate edge labels with the referer instead of the referent.
 - Give edge labels for VM classes (offsets only).
 - Make is possible to distinguish closures and functions from their refs.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1246073005 .
2015-07-28 15:56:10 -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 f26050ce08 Automatically step past async state-machine switch for 'anext'.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1244983002 .
2015-07-21 10:36:00 -07:00
John McCutchan 9a90002eda Add missing toInt call
BUG=

Review URL: https://codereview.chromium.org//1243893003 .
2015-07-21 08:48:30 -07:00
John McCutchan f818f9dc0f Support piping log data over the service protocol
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1241683005 .
2015-07-21 07:54:46 -07:00
Ryan Macnak 7663e4a894 Rename 'astep' to 'anext' to better reflect its semantics.
R=turnidge@google.com

Review URL: https://codereview.chromium.org//1243523002 .
2015-07-16 17:34:34 -07:00
Ryan Macnak 0979a7b23e Async-step, first cut.
Also fix inclusion of internal variables from outer scopes in var descriptors.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1241673003 .
2015-07-16 13:05:37 -07:00
John McCutchan 4747a63ad6 Factor cpu profile tree into separate element and expose allocation tracing UI
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1241653002 .
2015-07-14 13:56:45 -07:00
Todd Turnidge e4684c7627 Provide stdout and stderr output in the Observatory debugger.
Implement two new streams, 'Stdout' and 'Stderr' in the service protocol.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1232193003 .
2015-07-14 12:54:07 -07:00
Todd Turnidge a02c7694c5 Make random clicks in the debugger give the command line input focus.
If the user selects a range, respect that.

Add some inner spacing on the command line input box.  Makes it feel
less claustrophobic.

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1233053002 .
2015-07-14 12:35:32 -07:00
John McCutchan a92a3c8af3 Expose allocation tracing over service protocol
BUG=
R=turnidge@google.com

Review URL: https://codereview.chromium.org//1231603008 .
2015-07-14 11:41:57 -07:00
John McCutchan 07a927e74d Do not report Observatory analytics when running in Dart
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1236223002 .
2015-07-14 11:34:55 -07:00
Ryan Macnak 1ef2b68e65 Deal with Javascript integer limitations in heap snapshot processing to handle 64-bit target VMs.
R=turnidge@google.com

Review URL: https://codereview.chromium.org//1219103002 .
2015-07-13 17:27:55 -07:00
Todd Turnidge c4dad3117a Make VM event streams look like real dart streams.
This is a bit ugly in that vm event streams are created
asynchronously, which is not very natural with the dart libs.

Update tests accordingly.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1217823009 .
2015-07-08 14:18:59 -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
Ryan Macnak 69938db31a Include pattern and functions for RegExps over the service protocol.
Remove some quadratic behavior from processing/display of Code in Observatory, so we can actually look at 300k regexp instructions.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1208153002.
2015-06-25 12:56:59 -07:00
Ryan Macnak e747d0516b Observatory UI tweaks.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1194103002.
2015-06-19 14:26:34 -07:00
Ryan Macnak 723334d344 UI for setting/clearing closure-specific breakpoints.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1191133002.
2015-06-18 14:01:19 -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
John McCutchan d2751e2094 Fix last column calculation in scanForLocalVariableLocations
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1187953005.
2015-06-18 07:53:27 -07:00
Ryan Macnak 9d16fe0078 Re-focus the command box after a stack refresh.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1181943009.
2015-06-17 09:39:45 -07:00
Ryan Macnak 392a83221f Allow setting break-on-exceptions option over the service protocol. Add command to Observatory's debugger.
Decide whether to cache service objects based on the fixedId property.

Be more tolerant of eval scripts and functions.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1174313002.
2015-06-15 12:05:23 -07:00
Florian Schneider 09b59b6c16 Fix checked mode service test.
The object pool is not an Instance, but a VM object now.

TBR=johnmccutchan@google.com,

Review URL: https://codereview.chromium.org//1174943002.
2015-06-10 13:24:09 +02:00
Ryan Macnak 304382c1b4 Add TypedData instance kinds.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1157003003.
2015-06-08 17:30:11 -07:00
John McCutchan 82d3caefc7 Fix code display in Observatory
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1164413002
2015-06-08 14:55:26 -07:00
Todd Turnidge 996f012707 2nd attempt at adding streamListen/streamCancel to the service protocol.
This time I am committing the protocol changes first and saving the
Observatory changes for a second cl.

------

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.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1166433008
2015-06-04 09:57:22 -07:00
Todd Turnidge 1b59b9ea06 Service cleanups...
- Allow for multiple breakpoints in the service protocol.
  The info isn't actually provided or used yet.
- Drop index for list elements returned by the protocol.  Flatten structure.
- Drop index for context elements.  Keep sub-structure so we
   can choose to add extra slot info later.
- Errors now have ids and kinds.
- exception and stacktrace move from @Error to Error.
- All heap Objects now include class/size.
- Changed BoundedType.type and TypeRef.type to different names.
  Turns out we already have a "type" property that conflicts.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1152753005
2015-06-04 09:09:22 -07:00
Todd Turnidge 4a3b6fe160 Rework the format of the FlagList response.
BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1149403007
2015-06-03 10:09:15 -07:00
Todd Turnidge 6c2ebfcc60 Switch to using SourceLocation universally in service protocol.
Add <location-link> and <location-inset> to provide links and insets
for a location.

Make Frame, Message, and SourceLocation first class in service lib.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1150303004
2015-06-03 09:02:40 -07:00
Ryan Macnak eca0d72abe Provide a logical view of VM-internal maps in Observatory.
BUG=http://dartbug.com/20551
BUG=http://dartbug.com/21185
R=koda@google.com

Review URL: https://codereview.chromium.org//1150103005
2015-06-02 11:38:39 -07:00
Ryan Macnak 98999e6a02 Misc Observatory patches:
- Address some editor hints.
 - Place eval box above fields and be much more generous in expanding fields.
 - Treat maps as plain instances so their refs aren't blank.

R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1159783004
2015-06-01 14:59:54 -07:00
Todd Turnidge f6d3d4681d Rename some service protocol errors.
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1164463005
2015-06-01 09:26:54 -07:00
Ryan Macnak c6ebef9526 Address hints in the Observatory.
R=turnidge@google.com

Review URL: https://codereview.chromium.org//1161553013
2015-05-29 13:42:31 -07:00
Todd Turnidge 8adf7de6d1 Introduce Instance.kind.
Use this instead of subclassing Instance in the service protocol.

Revise many instance property names.

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

Review URL: https://codereview.chromium.org//1162133002
2015-05-29 13:02:36 -07:00
Todd Turnidge 67adc6102d Add getVersion and setLibraryDebuggable RPCs to the service protocol.
BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1149373006
2015-05-28 13:34:23 -07:00
Ryan Macnak 2764bcefba Give structured information about imports and export in the service's library response.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1160943002
2015-05-28 11:37:20 -07:00
Todd Turnidge ab6b2218b0 Standardize on using "kind" to distinguish sub-varieties of a type.
- Event.eventType -> Event.kind.
- Sentinel.id -> Sentinel.kind.

We were already doing this for Code and will do so for Instance in
an upcoming cl.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1153193006
2015-05-28 11:04:32 -07:00
Todd Turnidge 3d02f21309 Service protocol cleanups.
- ServiceEvent -> Event, protocol only.
- Use camel-case for StepOption
- Hide FlagType but make it camel-case too.

BUG=
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1156803003
2015-05-28 10:24:09 -07:00
Todd Turnidge 563083696c Sundry service protocol cleanups before version 1.0.
Frame.depth -> Frame.index
Message.depth -> Message.index
Remove Message.type
Message.priority becomes private
frame -> frameIndex for evaluateInFrame
Class.finalized, Class.implemented, Class.patch Class.allocationStats become private
Instance.nativeFields becomes private
Field.value moves out of "ref" into full object
Field.value -> Field.staticValue
Move Function.static, Function.const to "ref"
Make Script.kind private in docs
Make Function.kind private

BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1160873002
2015-05-28 09:30:55 -07:00
Todd Turnidge 95dc56e27e Make several service protocol RPCs private.
BUG=
R=rmacnak@google.com

Review URL: https://codereview.chromium.org//1159003002
2015-05-27 11:25:56 -07:00
Ryan Macnak 74dfae69e3 Reapply "Per-closure breakpoints; restructure breakpoint implementation to keep a list of conditions."
Fix copying breakpoints over to a new location when a latent location is resolved.

Fix bad assumption that BreakpointLocationAtLine always returns non-null result.

Review URL: https://codereview.chromium.org//1149983003
2015-05-27 09:59:33 -07:00
Ryan Macnak dfee2bf45d Mark script kinds as private in the service protocol.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1158863002
2015-05-27 09:28:19 -07:00
Ryan Macnak 69c50f7294 Use words! closureFunc -> function, closureCtxt -> context.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1158103002
2015-05-26 16:08:32 -07:00
Ryan Macnak 1fa8c92f31 Libraries have uris not urls. Scripts have uris not names.
R=johnmccutchan@google.com

Review URL: https://codereview.chromium.org//1154163004
2015-05-26 16:03:05 -07:00
Todd Turnidge 8d24372339 Revert "Add the streamListen and streamCancel rpcs to the vm service."
This reverts commit 0967b63073.

Conflicts:
	runtime/observatory/tests/service/graph_test.dart
	runtime/vm/service.cc

BUG=

Review URL: https://codereview.chromium.org//1152283005
2015-05-26 15:22:39 -07:00
Ryan Macnak bad1ccb2f7 Heap snapshot visualizations:
- Dominator tree with retained sizes
- Merge nodes by class

- Split snapshot into chunks so the browser's websockets implementation can handle them.
- Use TypedData indexed by node ids instead of lists of objects and a higher time complexity but more memory efficient algorithm to find the dominator tree (reduces memory usage to ~2X the size of the heap being analyzed from >10X).

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

Review URL: https://codereview.chromium.org//1124153006
2015-05-26 14:46:28 -07:00