Commit Graph

149 Commits

Author SHA1 Message Date
koda@google.com 655b16b2d6 Include parent field/list index in retaining path.
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37956 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-02 20:37:56 +00:00
mlippautz@google.com 85ce6bffb9 Coverage data for single entities can be obtained by querying:
* script: isolate/id/script/name/coverage
 * class: isolate/id/class/id/coverage
 * library: isolate/id/library/id/coverage

Some numbers (curl on vm service):
 * old base line (full coverage of dart:core + script computing faculty): ~1.2s
 * generation for just the script file: ~12ms
 * generation of dart:core (after executing fac script): ~150ms
 * generation of dart:core-patch/array.dart: ~12ms

BUG=
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37676 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-25 00:06:53 +00:00
koda@google.com bdab04234a Class view: list all/sample instances on request.
The returned list can be filtered, etc., using its eval box.

Change VM code to only get reachable instances, using ObjectGraph.

BUG=dart:
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37661 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-24 16:14:37 +00:00
koda@google.com bd979f84d5 Send allocation stats with each class and show in class view.
For each class, if there are any allocations, shows current number of instances, shallow size, and the already existing link for retained size.

Also refactor code in ClassTable to reduce duplication.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37566 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-20 20:17:42 +00:00
koda@google.com a65edb0397 VM service: List all instances of a class.
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37465 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 20:55:09 +00:00
johnmccutchan@google.com b67b9f0e20 Remove timers from Service_Isolate test because the internal C++ json parser can't handle floating point numbers.
Review URL: https://codereview.chromium.org//340843003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37462 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-18 20:16:52 +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 8db11b79ac Show flags in Observatory.
Add vm support for setting flags through vm service (UI coming soon).
e.g.
  http://127.0.0.1:8181/#/flags/set?name=some_flag&value=100

--

I reworked the Flags class to use a growing array rather than a linked list to store flags.  This means that we don't need to go through the hassle of building an array and sorting every time that we print/printjson.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36712 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-27 21:27:17 +00:00
koda@google.com 61bde80790 Retaining path in Observatory.
Add retaining_path instance command to VM service, exposed in the Observatory
with a [find] eval-link in instance view. By default shows up to 10 elements,
possibly followed by [find more] which doubles the number of elements shown.

Change RetainingPath to include the object itself.

Always include an id in Object::PrintJSONImpl, to avoid instance-ref crashing on
internal objects.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36516 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-22 17:31:47 +00:00
koda@google.com 21b2b3ec17 Disallow eval on lists containing non-instances.
BUG=dart:18781
R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36435 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-21 15:50:59 +00:00
hausner@google.com 12c56b29c7 Eliminate unused url mapping parameter in dartutils
Change the LibraryTagHandler used in unit tests to match
the real tag handler better, eliminating special treatment
of url canonicalization. This required changing the library
url of tests so tests don’t get loaded using dart scheme urls,
since builtin.dart doesn’t handle dart: urls.

R=iposva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35987 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-09 18:25:41 +00:00
koda@google.com 66369faf9c Class view: Retained size of all instances.
Uses eval-link to compute retained size on request.
Does not round to MB or other human-friendly units.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35773 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-05 22:10:35 +00:00
koda@google.com 1c3a41ad13 Retained size for instance in Observatory.
Add objects/$id/retained message that uses ObjectGraph to compute retained size for an instance.
In the instance view, the user can request the size to be calculated.

R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35757 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-05 19:41:12 +00:00
turnidge@google.com 14ccd5494d Don't remap class/type names in the vm service.
We add a new kind of name, PrettyName, to the vm.  This is a name
which is demangled but doesn't remap things like _OneByteString to
String or _Smi to int.

BUG=18360
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35710 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-02 21:37:01 +00:00
zra@google.com 7d0b680f95 Adds Simulator Longjmp and enables many tests for arm64.
R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@35603 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-30 23:07:47 +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
zra@google.com 2fe51715e5 Begins work on ARM64, first assembler test.
Most new code is in constants_arm64.h and
{assembler,disassembler,simulator}_arm64.{h,cc}

The rest of the CL just #def's out tests, modifies status files,
and adds UNIMPLEMENTED functions, etc.

R=regis@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34654 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-02 17:39:32 +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 b373e6c423 Change how we provide value previews in the vm service.
Rename the 'preview' property to 'valueAsString'.

Rework printing so that we only add 'valueAsString' when we need it
(num, String, etc.).

Change ToUserCString to be a String-only method.  Drop ToUserCString
for lists -- it was hokey and unused.  Max string length is now 1024
instead of 40.

Update tests.

BUG=
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34612 260f80e4-7a28-3924-810f-c04153c831b5
2014-04-01 19:45:57 +00:00
turnidge@google.com 3e86631f02 Use tokenPos instead of line/col in the vm service.
Add line number information to the Script response.

Parse line number information in the observatory.

Update <script-ref> to take a pos argument

Add a new <script-inset> element which shows a code snippet.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34528 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-28 21:24:24 +00:00
turnidge@google.com 99fca31c02 Support Types in instance-ref/instance-view.
Refactor JSON printing for all instances to share more code.  This allows Types to act like Instances in Observatory.

Update the look and feel for the function-view page.

Add script info for functions.

Update tests.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34435 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-26 17:13:03 +00:00
koda@google.com c1437c3673 Add 'address' vm service message that finds heap objects.
Will be used to navigate from heap map to individual objects.

R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34206 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-20 21:08:24 +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
koda@google.com 9a8671276b Add class and address information to heap map; display on hover.
Display a string like "String @ 0xe97c3328" while hovering over the map.

Also add page separators (black).

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34195 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-20 18:56:45 +00:00
regis@google.com fe667b6d9a Support displaying of types in the observatory (back-end only for now):
- canonical type arguments cached in the global hash table
- subset of the above, but with cached instantiations
- canonical types cached by the type class

And of course, it should now be possible to display any type, e.g.
field types, function signature types, classes super types, interface types,
etc...

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34181 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-20 16:41:59 +00:00
johnmccutchan@google.com 6952f5ddfe Use VM tag in profile and add stack trace trie
R=asiva@google.com, turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@34064 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-18 21:20:41 +00:00
turnidge@google.com 7fbb7cd5dc Rework library and class view pages.
Add expression evaluation support for libraries and classes.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33755 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-17 17:43:07 +00:00
johnmccutchan@google.com 6ea46abd34 Create a shadow table to track CodeRegions of reused code address space.
R=asiva@google.com, turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33665 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-13 21:00:44 +00:00
turnidge@google.com 560f89028f I forgot to filter a machine-dependent field in the service unit test.
R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33612 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-12 21:08:19 +00:00
koda@google.com c62fcdf3c4 Heap maps: add VM service message.
A heap map is serialized as arrays of sizes + class ids:

{"type":"HeapMap","id":"heapmap","pages":[[15,2,10,3,...,100,0],...,]}

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33608 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-12 20:46:09 +00:00
turnidge@google.com a73703b08a Improve the instance-view page in observatory.
Add an eval-box element which is used to evaluate expressions.

Support expression evaluation for instances in the vm service.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33592 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-12 17:18:14 +00:00
johnmccutchan@google.com 115caa8fe2 Fix service test breakage
BUG=

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33545 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-11 18:38:03 +00:00
hausner@google.com 295b7fd5b2 Eliminate more implicit getters
For some reason I don’t remember, we only attempt to optimize
away the implicit getter functions of const and final static
fields, but not non-final static fields. This change applies the
same optimization for all static fields, and also for all
top-level fields.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33433 260f80e4-7a28-3924-810f-c04153c831b5
2014-03-07 16:20:11 +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
fschneider@google.com 16857e0b13 Revert r32930 (Add more timing information in the VM to track time...)
It caused severe performance regressions that should be addressed.

TBR=asiva@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32959 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-24 12:15:55 +00:00
asiva@google.com 6d313d3797 Add more timing information in the VM to track time spent is dart code Vs native code.
R=johnmccutchan@google.com, turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32930 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-21 21:30:29 +00:00
johnmccutchan@google.com 2820a12766 Allow for embedder provided service request handlers
BUG=
R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32769 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-18 22:38:11 +00:00
johnmccutchan@google.com 9d80608b9c Add Float64x2, Float64x2List, etc... with runtime and dart2js implementations
R=sra@google.com, srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32196 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-31 15:28:05 +00:00
lrn@google.com d0651286c6 Make _Utf8Encoder create its buffer through an external function.
This allows the VM to use a Uint8List, where dart2js still has to use a plain List (due to versions of IE not supporting typed data).

R=floitsch@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32193 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-31 13:11:25 +00:00
turnidge@google.com b891e78325 Post-meetup feature extravaganza.
Remodel the top-level isolate summary page.

Add variables to stack frames in the stack trace.

Stop putting small integers and bools in the object id ring.

Rework how we pass down null references (and null-like references like
uninitialized values).

Collect all isolate timers by default.

Change the lifetime of IsolateSpawnState so that we can refer to it
later to know how an isolate started up.  Stop pretending that
IsolateSpawnState is a void*.  Clean up vestigial IsolateStartData.

R=johnmccutchan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@32128 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-29 18:40:12 +00:00
johnmccutchan@google.com a6399981e6 Code coverage in Observatory
R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31970 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-22 00:46:30 +00:00
lrn@google.com 9357caa547 Revert "Make VM TypedList not implement ByteBuffer."
Html transferable test fails to send buffer as buffer.

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31875 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-16 11:48:07 +00:00
lrn@google.com c2f6609181 Make VM TypedList not implement ByteBuffer.
BUG= http://dartbug.com/10136
R=asiva@google.com, sra@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31873 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-16 10:18:41 +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
johnmccutchan@google.com 7da1f4f3ba Build map of code regions and address ticks for profile report.
Profile pauses should be less than 500 ms even when handling 120,000 samples (2 minutes @ 1000 hz).
Code objects are referenced by hex address: "code/cafebabe".
Test for retrieving code objects over the service.
Remove old profile tool scripts. Replaced by dprof (https://github.com/dart-lang/dprof) and Observatory UI for profiler.
Support for stable service refs to implicit closures and dispatcher functions.

R=srdjan@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31447 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-03 19:55:50 +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
johnmccutchan@google.com 727d29d6b6 Refactor VM service IDs:
- IDs are strings which can be concatenated together like paths.
- Isolate ID is now "/isolates/XXX"
- Function, field, class, library, and script IDs are now stable.
- Introduce <type-ref> tags.

R=turnidge@google.com

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

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31358 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-20 22:35:55 +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