dart-sdk/pkg/vm_service
Liam Appelbe 875922a88f [vm]: Rewrite library_filters in source_report
When library_filters were given, we used to prefill the script_table_,
then just assume that any scripts not in the script_table_ must have
been filtered out. We wrote it this way to avoid checking the filters
in every GetScriptIndex call. But in some cases (eg mixins),
lib.LoadedScripts() can miss some scripts, so they'd be incorrectly
omitted from the table.

The new implementation lazy loads the scripts, the same way it works
when there are no library_filters. Skipped scripts are still placed in
the script_table_, but given an index of -1, and omitted from
script_table_entries_.

Bug: https://github.com/dart-lang/sdk/issues/49887
Change-Id: Ide938ddfa9a3750c72c615e296b1a23875e46ab8
TEST=CI (also manually tested that the bug is fixed, but it's a really fiddly setup and I'm not sure how to put it in a unit test. See bug for details)
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260076
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Liam Appelbe <liama@google.com>
2022-09-26 23:03:18 +00:00
..
example
java
lib
test [vm]: Rewrite library_filters in source_report 2022-09-26 23:03:18 +00:00
tool
.gitignore
analysis_options.yaml
CHANGELOG.md
LICENSE
OWNERS
pubspec.yaml
README.md

pub package package publisher

A library to access the VM Service Protocol.

Usage

See the example for a simple use of the library's API.

The VM Service Protocol spec can be found at github.com/dart-lang/sdk/runtime/vm/service/service.md.

Features and bugs

Please file feature requests and bugs at the issue tracker.