Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[dartdevc] Provide symbol information to the debugger #40273

Open
annagrin opened this issue Jan 22, 2020 · 0 comments
Open

[dartdevc] Provide symbol information to the debugger #40273

annagrin opened this issue Jan 22, 2020 · 0 comments
Assignees
Labels
area-web Use area-web for Dart web related issues, including the DDC and dart2js compilers and JS interop. web-dev-compiler web-eval evaluation support on the web

Comments

@annagrin
Copy link
Contributor

annagrin commented Jan 22, 2020

Currently debugger does not have access to type and symbol information from the dev_compiler,
and represents dart objects using JS objects and heuristics to filter information that does not appear
in dart, which sometimes fail.

To make debugger represent dart objects correctly, we need to store symbol and type information
from ddc and communicate it to the debugger.

Work items:

Needed to solve the following debugging problems:

Note that some of the resolved issues are using workarounds, such as filtering heuristics, which makes the debugger code not resilient to changes in the compilers.

Related: flutter/devtools#3068 (see how the library information is read from the runtime)

@annagrin annagrin self-assigned this Jan 22, 2020
@srawlins srawlins added the area-front-end Use area-front-end for front end / CFE / kernel format related issues. label Jan 22, 2020
@johnniwinther johnniwinther added area-web Use area-web for Dart web related issues, including the DDC and dart2js compilers and JS interop. and removed area-front-end Use area-front-end for front end / CFE / kernel format related issues. labels Jan 23, 2020
@sigmundch sigmundch added the web-eval evaluation support on the web label Sep 23, 2020
@annagrin annagrin changed the title [frontend_server] Add mapping from dart symbols to js symbols [dartdevc] Add mapping from dart symbols to js symbols to debug metadata Oct 9, 2020
@annagrin annagrin changed the title [dartdevc] Add mapping from dart symbols to js symbols to debug metadata [dartdevc] Provide symbol information to the debugger Apr 10, 2021
dart-bot pushed a commit that referenced this issue Jun 4, 2021
Towards: #40273
Change-Id: Id784e1341ed2d41111a71aaafd849325335a9e21
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202303
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Anna Gringauze <annagrin@google.com>
dart-bot pushed a commit that referenced this issue Jun 8, 2021
Towards: #40273:
Change-Id: I9e735d7e77588ab6bc1c7e30176e2d96a0265a13
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202731
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Anna Gringauze <annagrin@google.com>
dart-bot pushed a commit that referenced this issue Jun 9, 2021
This reverts commit b666964.

Reason for revert: <Broke pkg-win-release bot, investigating>

Original change's description:
> Emit empty symbols file under --emit-debug-symbols flag
>
> Towards: #40273:
> Change-Id: I9e735d7e77588ab6bc1c7e30176e2d96a0265a13
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202731
> Reviewed-by: Nicholas Shahan <nshahan@google.com>
> Commit-Queue: Anna Gringauze <annagrin@google.com>

TBR=sigmund@google.com,nshahan@google.com,annagrin@google.com

Change-Id: I4b26c26b6404519a1b46c1eca919455cb60ca5e8
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202869
Reviewed-by: Anna Gringauze <annagrin@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Anna Gringauze <annagrin@google.com>
dart-bot pushed a commit that referenced this issue Jun 9, 2021
This reverts commit bca8a05.

Reason for revert: Issue found, fixed in this CL (by closing a file sink)..

Original change's description:
> Revert "Emit empty symbols file under --emit-debug-symbols flag"
>
> This reverts commit b666964.
>
> Reason for revert: <Broke pkg-win-release bot, investigating>
>
> Original change's description:
> > Emit empty symbols file under --emit-debug-symbols flag
> >
> > Towards: #40273:
> > Change-Id: I9e735d7e77588ab6bc1c7e30176e2d96a0265a13
> > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202731
> > Reviewed-by: Nicholas Shahan <nshahan@google.com>
> > Commit-Queue: Anna Gringauze <annagrin@google.com>
>
> TBR=sigmund@google.com,nshahan@google.com,annagrin@google.com
>
> Change-Id: I4b26c26b6404519a1b46c1eca919455cb60ca5e8
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202869
> Reviewed-by: Anna Gringauze <annagrin@google.com>
> Reviewed-by: Nicholas Shahan <nshahan@google.com>
> Commit-Queue: Anna Gringauze <annagrin@google.com>


Change-Id: Iaba56e82a5c5500437b98c3f69066a2f53f6ee4e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/203000
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Anna Gringauze <annagrin@google.com>
Commit-Queue: Anna Gringauze <annagrin@google.com>
dart-bot pushed a commit that referenced this issue Jun 16, 2021
Module symbol information now includes basic details the classes
compiled in the module.

Add tests and refactor to share some of the options for running the
incremental frontend compiler and ddc.

Change-Id: I6d3eb16bd6fb70c4c0af46de93a0f7bf96151c4f
Issue: #40273
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202865
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Anna Gringauze <annagrin@google.com>
dart-bot pushed a commit that referenced this issue Jun 21, 2021
- Collects `VariableSymbols` for global variables and class fields.
- Add test cases.

Change-Id: Id79d60d01f84948c4c7b0bf9e54fbdd232da63da
Issue: #40273
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/204086
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
dart-bot pushed a commit that referenced this issue Jul 19, 2021
Change-Id: I1d1b1c47efa5b8b653493ed0e097999872cacbd7
Issue: #40273
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/207240
Reviewed-by: Anna Gringauze <annagrin@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
dart-bot pushed a commit that referenced this issue Jul 29, 2021
- Collects `FunctionSymbols` for top level functions, getters, setters,
  as well as class methods, getters and setters.
- Add test cases.

Change-Id: If26c59e920c3e6e914c7f06e3b725afdf048c4e1
Issue: #40273
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/207100
Reviewed-by: Anna Gringauze <annagrin@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
copybara-service bot pushed a commit that referenced this issue Oct 1, 2021
- Adds tests for various types of constructors.
- Recognize when a constructor is const and mark the class symbol
  accordingly.

Change-Id: I9ae7fc2837a6821b196f06a267603fd18c3e5075
Issue: #40273
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/208362
Reviewed-by: Anna Gringauze <annagrin@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
copybara-service bot pushed a commit that referenced this issue Oct 25, 2021
Temporarily add names of static members so they can be accessed by the
debugger. Eventually, these will be accessible through the symbol data
and should be removed from the compiled Javascript.

This increases the size of the compiled output by ~1% in a large
google3 application.

Names and types of static members were originally removed from the
compiled output in https://dart-review.googlesource.com/c/sdk/+/48455
because they are not needed for runtime correctness.


Change-Id: Idfd827ececec80d903586917676ec027e2a5a9e8
Issue: #40273
Issue: dart-lang/webdev#1430
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217501
Reviewed-by: Anna Gringauze <annagrin@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-web Use area-web for Dart web related issues, including the DDC and dart2js compilers and JS interop. web-dev-compiler web-eval evaluation support on the web
Projects
None yet
Development

No branches or pull requests

5 participants