Commit Graph

678 Commits

Author SHA1 Message Date
Jens Johansen 18c281c624 [observatory] Allow to say 'break package:foo/file.dart:42'
This CL updates the parsing of "break" statements in the debug console
in observatory, as well as handling that the same script can be a part
of several libraries.

Before one could get stuff like this:
$ break package:front_end/src/fasta/scope.dart:389
Function 'package:front_end/src/fasta/scope.dart:389' not found
$ break scope.dart:389
Script 'scope.dart' is ambiguous

The first one is fixes by this CL: We now allow package uris and thus
no longer think it's a function. In this case it wouldn't have mattered
though, it would just say it was ambiguous, as the last case.
This is caused by the same script being found twice. By using a set
instead of a list, that's fixed too.

Change-Id: I3931c8f2abc0a3a5a77cff516da8767037196bf2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133593
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2020-02-04 08:57:01 +00:00
Ryan Macnak c359b5943a [vm, service] Fix and enable more services tests.
Change-Id: I3e96b3fdcb30def43c7b87183a925bd1668fb6a2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/133087
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2020-01-24 01:59:01 +00:00
Ryan Macnak edf0de533c [observatory] Progress on making heap snapshot analysis a public library.
- Clean up loading flow.
 - Replace manual iterators with generator functions.
 - Produce clearer messages when running out of memory.
 - Make various implementation functions and constants private.

Change-Id: I9e016b37552e3110baf00f3052b131dc0d79b748
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/132027
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2020-01-17 18:40:14 +00:00
yuanhuihui 72b0501791 Support timeline conversion to iOS platform trace
using Instruments to track these events.

Signed-off-by: yuanhuihui <gityuan@gmail.com>
Bug: https://github.com/dart-lang/sdk/issues/40076
Change-Id: I590081c516923f82a2a3dbf4b109afe75b8f5fc5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/131360
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2020-01-17 18:10:04 +00:00
Ryan Macnak 16c3cebab6 [observatory] Handle some larger heap snapshots.
Don't flatten snapshot chunks into a linear byte array to avoid a 2GB limit in JS. The lifts the largest snapshot we can handle to either 2^32 objects or the memory limit in JS.

Change-Id: I1a3ec03cf83cb03b4cf67245b12560a083a6e5b6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/131943
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2020-01-16 18:41:07 +00:00
Ryan Macnak a67fd37193 [observatory] Visualize differences between two heap snapshots.
Display progress when loading a snapshot from a file.

Change-Id: I6802998308c0b6c552ffea76439fe18edd34c99c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130460
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2020-01-08 18:55:51 +00:00
Ryan Macnak 5b8c4e8024 [vm, service] Speed up generation and transmission of heap snapshots.
- Remove server-side transmission bottleneck in WebSocket compression.
 - Remove client-side transmission bottleneck in response inflation.
 - Remove generation bottleneck and memory overhead of WeakTables by using a finger table.

On dart2js self compile, 1.5GB heap, 400MB heap snapshot
Time to generate and transmit:    46 -> 5s
Auxiliary memory for WeakTables: 537 -> 1.5MB

Change-Id: Ia58e2ffb942e5d29536e175d9caedd2bf835981a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130621
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2020-01-08 03:22:59 +00:00
Ryan Macnak 98da22a11f [observatory] Display process-wide memory usage with heap snapshots.
Include major memory users known to the VM: isolate heaps, profiling buffers, timeline buffers.

Change-Id: I2580ad74b5d4d07c5c75fde28bb7a5d71fddb09b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127382
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2019-12-07 00:28:15 +00:00
Ryan Macnak 80aa5fda4b [observatory] Account for external size in the "Classes (table)" and "Classes (treemap)" views.
Mechanically, this renames shallowSize to internalSize and redefines shallowSize as internalSize + externalSize.

Change-Id: I734f5714ad6dff341627e3d6e51e3bdcf26c63ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125993
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2019-12-06 23:20:04 +00:00
Ben Konyi c2c716d0c5 [ Observatory ] Fix issue where timeline would hang if CPU profiling was disabled.
When CPU profiling is disabled, the getCpuSamples RPC would return with
a ServerRpcException stating that the profiler was disabled. This wasn't
being caught when the RPC was invoked, but was being caught in
`ObservatoryApplication` and swallowed. This resulted in the timeline
page being stuck at the timeline loading dialog.

Also includes fixes from "[observatory] Properly wait for Catapult's iframe to load. Give
message while fetching timeline.", commit 3b99524167, which was reverted.

Change-Id: I2fe23d4dba5e20f717e111c519563866bb1a221c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126402
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2019-11-26 22:00:20 +00:00
Ben Konyi 3b99524167 Revert "[observatory] Properly wait for Catapult's iframe to load. Give message while fetching timeline."
This reverts commit b3cf5ef327.

Reason for revert: Breaking timeline view for users in Google3

b/141889413
b/145128403

Original change's description:
> [observatory] Properly wait for Catapult's iframe to load. Give message while fetching timeline.
> 
> Change-Id: I342c9315fc31021fb1387bc0e409645cd7a99d6a
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125468
> Reviewed-by: Ben Konyi <bkonyi@google.com>
> Commit-Queue: Ryan Macnak <rmacnak@google.com>

TBR=bkonyi@google.com,rmacnak@google.com,asiva@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I38b92a5a50955983369f4de7afb577d1a959e724
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126360
Reviewed-by: Ben Konyi <bkonyi@google.com>
2019-11-26 15:49:53 +00:00
Ryan Macnak b3cf5ef327 [observatory] Properly wait for Catapult's iframe to load. Give message while fetching timeline.
Change-Id: I342c9315fc31021fb1387bc0e409645cd7a99d6a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125468
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2019-11-20 19:55:31 +00:00
Ryan Macnak 545b10389d [vm, service] Compute allocation stats on demand, instead of during allocation and GC.
Removes support for accumulators, which now repeat the current live values.
Decreases performance difference between release and product modes.
Fixes inaccuracy when counters are queried before the first full GC.

Golem geomean   x64 4.687%
Golem geomean arm64 5.770%

Bug: https://github.com/dart-lang/sdk/issues/37678
Change-Id: I12b26a9834b0f0f911ddcc6e8e5ff4573272607d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116885
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2019-11-16 00:22:56 +00:00
Jason Simmons 262fadc6cf Change the type of RetainingPathItem.parentField to String in the observatory
This matches a change in the type of parentField within the VM service
(see https://dart-review.googlesource.com/c/sdk/+/108560)

Change-Id: Ib0d20c79bb26a3674cef1c52bf9509fb316bb52c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123472
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Jason Simmons <jsimmons@google.com>
2019-10-30 17:36:14 +00:00
Alexander Aprelev 9e636b5ab4 Reland "[vm/service] Introduce IsolateGroup entity to vm service api.""
This reverts commit f020ce5d23 with patchset 1 having original revert, rest - fixes
for calling destructors on unlinked IntrusiveDL elements and for assuming int is int64(which breaks down on simarm, ia32 bots).

Fixes https://github.com/dart-lang/sdk/issues/38926

Issue https://github.com/dart-lang/sdk/issues/36097

Change-Id: I867526c7de3786806670d1f43dbff07228f80028
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121870
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2019-10-17 03:45:41 +00:00
Alexander Aprelev f020ce5d23 Revert "[vm/service] Introduce IsolateGroup entity to vm service api."
This reverts commit f219e5152d as it breaks few bots.

Change-Id: I8d1d42d1ac662c2dba9ea9270c7a6cdc4f0621bd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121886
Reviewed-by: Ben Konyi <bkonyi@google.com>
2019-10-16 19:45:23 +00:00
Alexander Aprelev f219e5152d [vm/service] Introduce IsolateGroup entity to vm service api.
This is to enable vm clients to ask how much memory is consumed by isolate group.

Issue https://github.com/dart-lang/sdk/issues/36097

Change-Id: I4f1c499bf02c20b80e9802d8ad60e7ea65cfb375
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/119724
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2019-10-16 18:05:06 +00:00
Ben Konyi 35748514c7 [ VM / Service ] Added additional tests for package:vm_service and fixed service bugs
Change-Id: I3c96521a16bf0493cd0dc7ca9249487b3d9e3e64
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/118465
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
2019-09-25 00:39:56 +00:00
Alexander Aprelev 68022510a4 Revert "[vm, service] Remove _collectAllGarbage."
This reverts commit 09ce6d30e7 as it
breaks Flutter, which currently uses this method.

Change-Id: I2a06d48260970cc086a922f1d1f87d17716e8920
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/117006
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2019-09-12 18:41:08 +00:00
Ryan Macnak 09ce6d30e7 [vm, service] Remove _collectAllGarbage.
System.gc() considered harmful.

Change-Id: I227a092e7734176b55c269f4f611ef1d4293da99
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/116044
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2019-09-09 16:56:27 +00:00
Ben Konyi 68dede011e [ VM / Service ] Add getCpuProfileSamples RPC which returns a minimally processed sample buffer.
Change-Id: Ic0a47d5eea692b235327622508d904f7396babe3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112265
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2019-09-07 01:04:08 +00:00
Ryan Macnak 5a45050d1e [observatory] Flatten the heap snapshot before loading.
This improves the time to deserialize a snapshot. It also doubles the memory needed to receive the snapshot buffer, but the memory high water mark is still computing the dominators.

Change-Id: Ib93015cd6cb366dd2ff750da09ddaa3b37159f68
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/115010
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2019-09-05 17:27:06 +00:00
Ryan Macnak 2c69db7351 [observatory] Visualize class size and ownership data as tree maps.
Change-Id: If5f90f7bd484010e97515c485f2f2459be8e8131
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/115068
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2019-08-31 00:46:19 +00:00
Ryan Macnak 6e987b6eb5 [vm, service] Add requestHeapSnapshot.
This replaces _requestHeapSnapshot and _getObjectByAddresses, which relied on the invalid assumption that objects don't move and the heap hasn't mutated since the initial snapshot.

Updates Observatory to the new format. Adds treemap visualization of the dominator tree. Adds the ability to save and load heap snapshots to files. Removes analysis grouping references by source and target class. Removes ability to navigate from a pixel in the fragmentation view to inspector. Removes ability to query the top retaining instance from an ordinary class browser.

Change-Id: Ia7781c05d43bf3ec149f8b4ecab803b37c3ee981
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/112181
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2019-08-19 19:31:42 +00:00
Ben Konyi 5f32027e1d [ VM / Service ] Add getInboundReferences, getRetainingPath RPCs and InboundReferences, InboundReference, RetainingPath, RetainingObject objects.
Change-Id: I26211d13d49688037114d76f648e500b98ec3295
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108560
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2019-07-30 23:26:28 +00:00
Alexander Markov c3baca79b3 [vm/service] Fix flaky errors in SampleProfile.load() and re-enable service/get_native_allocation_samples_test
Closes https://github.com/dart-lang/sdk/issues/29262

Change-Id: Ifcab366beff06c73908258676c83f1358899a4a4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/110751
Auto-Submit: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2019-07-29 17:29:26 +00:00
Ben Konyi babefb8c01 [ VM / Service ] Added VMFlagUpdated event to VM stream
Fixes https://github.com/dart-lang/sdk/issues/37557

Change-Id: I129c60a4ac8f42e2f338e6bd15f7fa6fcfe7f54a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/109721
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2019-07-23 15:24:28 +00:00
Ryan Macnak c6bc0031f3 [vm, bytecode] Field initializer for schema changes.
Bug: https://github.com/dart-lang/sdk/issues/32299
Change-Id: Id6359ad36db183f4cdd091e7fd778c879e868d99
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108901
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2019-07-15 22:58:16 +00:00
Ben Konyi 8e3a75c3fe [ VM / Observatory ] Fixed getInstances invocation still using 'classId' instead of 'objectId' parameter.
Change-Id: I6e56b927b317e685b384949fb2f8554323f71e43
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108686
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2019-07-10 22:59:00 +00:00
Ben Konyi 0de18dce6c [ VM / Service ] Make _registerService and related streams / events public
Change-Id: I243bed9e1f4b3bbcfd232a8c27bf352f55284644
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108366
Reviewed-by: Siva Annamalai <asiva@google.com>
2019-07-10 16:07:15 +00:00
Ben Konyi 43891316ca [ VM / Observatory ] Emit IsolateReload event after reload completes
Also fixed issue in observatory where script object ID expires in
source_link after a reload, spewing exception dialogues.

Fixes https://github.com/dart-lang/sdk/issues/37013

Change-Id: Ic52a2879fae5366e88d6dd3a3fb81490902f8bd5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/108164
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2019-07-03 20:40:37 +00:00
Ben Konyi 6af218685e [ VM / Service ] Add getInstances and InstanceSet to the service protocol.
Change-Id: Ia5aab0f1bbdb99a7690a107eeef08de6a1f33656
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106561
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2019-06-19 23:59:32 +00:00
Ben Konyi a75ded625e [ VM / Service ] Made VM timeline functionality public through the service API.
Change-Id: I8228f0417047af53edc6f570940d452da3155bbd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/106061
Reviewed-by: Siva Annamalai <asiva@google.com>
2019-06-19 16:06:12 +00:00
Ben Konyi 74af4a00b2 [ VM / Service ] Created public implementation of getAllocationProfile RPC
Change-Id: I8c8cb4d47466ae6a298961652eeded762c769568
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/105730
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2019-06-13 23:45:52 +00:00
Ben Konyi 554f9db768 [ VM / Service ] Made Logging event and LogRecord public
Change-Id: Ib1c99a1f2483b98bc414edb9ad0b109ce909cecb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100661
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2019-05-28 19:20:40 +00:00
Daco Harkes 50b0d85804 [vm/ffi] Observatory support for FFI
Fixes: https://github.com/dart-lang/sdk/issues/36845

Change-Id: Ia013e5930655893db2384ffb141ab6e96843e653
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/103812
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2019-05-28 10:19:27 +00:00
Kevin Moore eba45291fb [observatory] Cleanup unused imports, fix warning about SDK version
Change-Id: I80f1861b8dd1d1fa5eea93cc305fa0ee2475580d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101884
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
Auto-Submit: Kevin Moore <kevmoo@google.com>
2019-05-13 16:27:41 +00:00
Ryan Macnak a91cc6c701 [observatory] Remove use of custom elements.
document.registerElement is going away soon, and dart2js never implemented window.customElements.define.

Replace the inheritance with composition for each FooElement.

When used to create a DOM tree, replace `new FooElement()` with `new FooElement().element`.

In CSS, replace each custom element selector with a class selector, i.e. `foo-element` with `.foo-element`.

Bug: https://github.com/dart-lang/sdk/issues/34107
Change-Id: Id5ab5b6104a6165a8ad3b01d73ee9d76e46024ed
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/101061
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2019-05-08 18:23:26 +00:00
Jens Johansen a58aa6f705 Fix NoSuchMethodError in observatory when setting breakpoint via debugger console
Reproduction without this fix:
Create 2 files, test1.dart and test2.dart:

```
$ cat test1.dart
import "test2.dart";

main() {
  test();
  test();
}

$ cat test2.dart
test() {
  // blank line.
  print("hello");
}
```

Launch with observatory enabled and paused at start, e.g.
`out/ReleaseX64/dart --observe --pause-isolates-on-start test1.dart`

Set a breakpoint on the second (*not* the first!) call to `test()`.
Continue execution.
Now write `break test2.dart:2` into the debugger console and you will be
presented with a stack trace looking something like this:

```
Unexpected exception:

NoSuchMethodError: method not found: 'gi4'
Receiver: Instance of 'minified:hS'
Arguments: []

StackTrace:

main.dart.js 459:3      Object.n
main.dart.js 15752:9    hS.G
main.dart.js 15901:28   hS.gi4
main.dart.js 40703:10   GE.$1
main.dart.js 43127:29   Hz.$0
main.dart.js 43100:9    pN.lG
main.dart.js 43124:12   HA.$1
main.dart.js 43127:29   Hz.$0
main.dart.js 43100:9    pN.lG
main.dart.js 43124:12   HA.$1
===== asynchronous gap ===========================
main.dart.js 14033:115  LH.cG
main.dart.js 13585:17   qm.eB
main.dart.js 13571:3    qm.kC
main.dart.js 13870:3    cQ.aV
main.dart.js 13873:27   cQ.I
main.dart.js 40226:79   P.R
===== asynchronous gap ===========================
[...]
```

This CL fixes the issue by catching the NoSuchMethod
(it will succeed for UnresolvedSourceLocation for instance)
and then using the scriptref and token position on the
abstract class Location to get the actual line.

Change-Id: Id951e2727a5edb8ba52a65959c833dcbf923406c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98667
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-04-23 08:58:58 +00:00
Ryan Macnak d9c40462c2 [vm] Rename kImplicitStaticFinalGetter to kImplicitStaticGetter.
This function kind is used for any static field with an initializer. It has nothing to do with whether the field is final.

Change-Id: I3faa2d2d77fd4bbd801624bc0bba88476b8f3cb0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99622
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2019-04-17 00:47:15 +00:00
Ryan Macnak 144bfdfce6 [vm] Use a separate kind tag for static field initializers.
This is preparation for handling implicit static getters as a bytecode.

Change-Id: Ic9fd186161d900c3b4c0bb773726b0cd0f35451e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/99105
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2019-04-15 22:54:36 +00:00
Ben Konyi 15b11b0183 [ VM / Service / Observatory ] The VM service now requires an authentication code by default.
Previously, a valid web socket connection would use the following URI:

`ws://127.0.0.1/ws`

Now, by default, the VM service requires a connection to be made with a
URI similar to the following:

`ws://127.0.0.1:8181/Ug_U0QVsqFs=/ws`

where `Ug_U0QVsqFs` is an authentication code generated and shared by the
service.

This behavior can be disabled with the `--disable-service-auth-codes`
flag.

Change-Id: I288aac58e3ba9d35dca8071f3f7e7a073896c271
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/98433
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2019-04-09 22:57:29 +00:00
Ryan Macnak 6d934b94c5 [vm, service] Remove _getCrashDump.
This has been broken since Dart 2.

Bug: https://github.com/dart-lang/sdk/issues/36281
Change-Id: I1b92c079ca3d7720a654c56457fd5aebeb7b8df4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97445
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2019-04-02 18:00:49 +00:00
Ben Konyi 380ae2ce55 [ Observatory ] Fixed links for 'part's in dart:* scripts not being created.
For example in the dart:io script, `part 'bytes_builder.dart';` would not
link to the script inset for 'bytes_builder.dart'.

Change-Id: I9252980cb2621f0bc2ea4b224209cb07dc21b896
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/97848
Auto-Submit: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2019-03-28 16:35:35 +00:00
Ben Konyi 585eb7f507 [ VM / Service ] Added disableBreakpoints parameter to evaluate, evaluateInFrame and invoke RPCs
- Setting the `disableBreakpoints` parameter to true will result in any
breakpoints hit during execution resulting from an evaluate or invoke
call to be ignored.
- Default behavior is the same (break on breakpoints).
- Updated Observatory eval box to disable breakpoints.
- Added tests

Change-Id: Ibf40f8a8de018718435118e13cc2e969f8ed7944
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/95320
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Jacob Richman <jacobr@google.com>
2019-03-08 02:19:06 +00:00
Ben Konyi b61efcd3c4 [ VM / Service ] Started cleaning up tests for the service protocol.
Mostly focused on app_jitk tests in this CL, but updated issue numbers
and statuses where appropriate.

Change-Id: I6b57d0a3091ad10ddd143c5b420f6b2121e9cc73
Reviewed-on: https://dart-review.googlesource.com/c/88128
Commit-Queue: Ben Konyi <bkonyi@google.com>
Auto-Submit: Ben Konyi <bkonyi@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2018-12-28 20:53:39 +00:00
Ryan Macnak e92c7678a7 [vm, observatory] Respect requested tag order even when --profile-vm=false.
Blame time waiting for service or kernel isolate startup against LoadWait instead of VM.

In the table profile view, include VM tags. Because of the flattening nature of this view, it is less intrusive than in the tree view.

Bug: https://github.com/dart-lang/sdk/issues/35394
Change-Id: If13c57daa96cb69c5e5a009dfd973b491b694d04
Reviewed-on: https://dart-review.googlesource.com/c/87380
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2018-12-17 23:35:24 +00:00
Régis Crelier 5f36c5f9d8 [vm] Delete BoundedType class in VM.
In Dart2, type bounds checking is either performed by the common front-end or
by explicitly generated code, but not by type finalization or runtime anymore,
as it was done in Dart1.
Consequently, the class BoundedType is not needed anymore, and malbounded or
malformed types are not seen by the runtime either.

Change-Id: I5d6e4c68d153d6730fa7ff7f6d9dcfa611299c16
Reviewed-on: https://dart-review.googlesource.com/c/86687
Commit-Queue: Régis Crelier <regis@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Samir Jindel <sjindel@google.com>
2018-12-10 23:15:27 +00:00
Ryan Macnak 488d1f375c [vm] Make profiler bailout counters available over the VM service.
Change-Id: I4c0d30b21371e33f66ab142636aa669a46f8a799
Reviewed-on: https://dart-review.googlesource.com/c/85547
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2018-11-29 21:53:24 +00:00
Ryan Macnak 2535b1e021 [vm] Account for bytecode in profile processing and Observatory.
Change-Id: I220eca1f4a3aadaa271ead4de698c28e4a7b653a
Reviewed-on: https://dart-review.googlesource.com/c/84447
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
2018-11-15 17:42:13 +00:00