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

feat: initial DWARF debugger integration #1804

Merged
merged 8 commits into from
Sep 20, 2023
Merged

feat: initial DWARF debugger integration #1804

merged 8 commits into from
Sep 20, 2023

Commits on Sep 15, 2023

  1. feat: initial DWARF debugger integration

    Enables stepping around and setting breakpoints in native code.
    Variables represenation is still a todo, and this needs some polish.
    
    It refactors the `Source.sourceMap` into a more generic location
    provider, which may be backed by the new IWasmSymbols interface. This
    then talks to the DWARF debugger. The SourceContainer's `_sourceMaps`
    are also now just folded into the `Source.sourceMap`; that information
    was duplicate and the only benefit was deduplication if two sources had
    the same sourcemap, but this is really rare.
    
    This also made all location mapping asynchronous, so there were a
    few refactors around there, too.
    
    It also refactors how I implemented WAT (text format decompilation) last
    iteration. That previously "pretended" the source of the WASM was WAT,
    but this caused issues because the location transformation we did on the
    scripts is done before location mapping. So instead, the WAT is an extra
    fake 'file' in the symbols and we resolve any unknown locations into the
    WAT file.
    
    One that that _doesn't_ work yet is entrypoint breakpoints for wasm,
    which means that breakpoints set before the debug session starts may be
    missed. I have a thread out to the Chromium folks to see if there's
    a solution to this.
    
    For #1789
    connor4312 committed Sep 15, 2023
    1 Configuration menu
    Copy the full SHA
    676e7e7 View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2023

  1. make variables store work

    connor4312 committed Sep 19, 2023
    Configuration menu
    Copy the full SHA
    3447541 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d9d52b4 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6095137 View commit details
    Browse the repository at this point in the history

Commits on Sep 20, 2023

  1. feat: implement wasm inline functions (#1808)

    * implement inlined method handling and improve stepping
    
    * update tests
    connor4312 authored Sep 20, 2023
    Configuration menu
    Copy the full SHA
    ed66fe3 View commit details
    Browse the repository at this point in the history
  2. Merge pull request #1807 from microsoft/connor4312/wasm-14

    feat: prompt to install extension on wasm step
    connor4312 authored Sep 20, 2023
    Configuration menu
    Copy the full SHA
    ccabc8c View commit details
    Browse the repository at this point in the history
  3. Merge pull request #1806 from microsoft/connor4312/wasm-13

    feat: make wasm inline breakpoints work
    connor4312 authored Sep 20, 2023
    Configuration menu
    Copy the full SHA
    903b783 View commit details
    Browse the repository at this point in the history
  4. Merge pull request #1805 from microsoft/connor4312/wasm-12

    feat: make wasm variable store work
    connor4312 authored Sep 20, 2023
    Configuration menu
    Copy the full SHA
    61a8b9f View commit details
    Browse the repository at this point in the history