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

WebAssembly: Debugger support #8378

Closed
15 of 19 tasks
kumpera opened this issue Apr 20, 2018 · 13 comments
Closed
15 of 19 tasks

WebAssembly: Debugger support #8378

kumpera opened this issue Apr 20, 2018 · 13 comments

Comments

@kumpera
Copy link
Contributor

kumpera commented Apr 20, 2018

This issue tracks the pending work to get the debugger to work:

MVP:

  • Set and Hit Breakpoints
  • Handle page reload
  • Fix/workaround asp.net crashes/races when WASM payload is parsed
  • Unify debugging engine with sdb
  • Single stepping
  • Build MonoProxy as a library and ship it on mono-wasm.zip
  • Move proxy code to mono repo
  • BP manipulation (enable/disable/remove)
  • C# Async stepping
  • Object inspection (this variable, fields, properties, etc)
  • objectGroup support (debugger object lifecycle, so long sessions are possible)
  • automated testing
  • Release + no debugger build of mono
  • Error handling (invalid BP request)

V2:

  • Firefox and Edge support
  • js async debug integration
  • watches
  • console eval
  • high performance json forwarding
@kumpera
Copy link
Contributor Author

kumpera commented Jun 27, 2018

With #9339 we got bp, stepping and unification done.

@kumpera
Copy link
Contributor Author

kumpera commented Jul 2, 2018

Issues:
#9405
#9406

@kumpera
Copy link
Contributor Author

kumpera commented Jul 19, 2018

Quality of life things:

  • Copy the discover feature from the Blazor prototype. It would simplify our OOTB debugger story by removing the URL port rewrite nonsense.
  • Validate the downloaded assemblies against what's loaded in the webapp. I frequently forget to reload it after rebuilding locally. 🤦‍♂️

@kumpera
Copy link
Contributor Author

kumpera commented Aug 10, 2018

With #9626 we get the proxy code in the mono repo and the proxy lib shipping with mono-wasm.zip

@kumpera kumpera changed the title [WASM] Debugger support WebAssembly: Debugger support Aug 22, 2018
@kumpera
Copy link
Contributor Author

kumpera commented Oct 24, 2018

Missing from that list: object inspection of maps and arrays

@kumpera
Copy link
Contributor Author

kumpera commented Oct 25, 2018

Object/frame inspection has 3 arguments we currently ignore: ownProperties, accessorPropertiesOnly, generatePreview

@kumpera
Copy link
Contributor Author

kumpera commented Oct 29, 2018

Another thing, we're missing the neat resume overlay on the webpage that regular JS BPs get.

@kumpera
Copy link
Contributor Author

kumpera commented Oct 30, 2018

When describing fields, we need to handle boxed objects.

@lambdageek
Copy link
Member

/cc @lambdageek

@lewing lewing added this to the WebAssembly 1.0 milestone Dec 5, 2019
@DierkDroth
Copy link

I'm trying to understand where we're at regarding WASM support for Blazor and would have thought that this very feature would be important for Blazor on WASM. Given that Blazor is supposed to have WASM support by May 2020 I find it concerning that there hasn't been much progress recently on this particular issue.

Could anyone please shed some light? What am I missing?

@kurtnelle
Copy link

@DierkDroth, it's not important to them. The debugger is a second class citizen to the authors.

@curtisy1
Copy link

@lewing @lambdageek So for lazy people like me who don't want to look through thousands of issues and closed pull requests, could you give an update of the status on this?

Also please take anything that sounds like a complaint here with a grain of salt. I don't mean any ill will even if some of my wordings could be better in some places. I know you're all doing an amazing job and lots of things are working like magic thanks to your (often voluntary) effort. I'm just writing this late at night so my brain might not be fully English-capable.

I understand it's been a year since this was closed but it has been closed without any information on whether debugging in Firefox is currently possible (it doesn't seem to be for me), whether support is actually still planned or dropped entirely which would be a shame since supporting the Google/Chromium monopoly and leaving thousands of developers primarily using Firefox alone with this issue makes Blazor/Mono Wasm look a bit unfinished and disappointing especially since Microsoft does their best to advertise it as something really cool (which no doubt, it is if you use the right browser).

Correct me if I'm wrong about any of these but for clarity I'll mention my current findings here:

So far what I've found seems to be that debugging in Firefox is not supported (from my experiments with it) and that support is not planned because the debugger proxy relies on the Chrome Remote Debugger Protocol (I think it was in some issue, currently can't find it anymore)

There used to be a pull request until recently that was closed, again, without any details as to why. My guess is a combination of the previous point, support is currently not planned? Or the PR was just unfinished and would've taken more time to adjust to current changes than creating a new one?

Some other ideas I'm not so sure about because I don't know the current plans for debugging on Firefox:
Nightly supports the remote debugging protocol in some way. Maybe it would be possible to cross-wire it without many changes to the existing debugger. Although from my understanding support of this is limited in Nightly editions

If this is some kind of thing you want to support but is up for grabs by the community, I'm pretty sure people (including me) would be willing to help out. Currently, without any open issue or way to go about this, it might cause people to give up on even contributing because it might be in vain if they put a lot of effort in and it ends up being something you don't want to support (which is a valid reason given that it takes more time to maintain two implementations rather than one).

Again, I can only speak for myself here and I don't mean any of it as a complaint. I'm just a curious Firefox user who wants to try Blazor Wasm as my main tech stack happens to be .NET. But seeing this being closed and marked as done when it clearly doesn't seem to be just feels a bit strange.

Hopefully you could shed some light onto what's the current situation with Firefox + .NET Wasm debugging. And hopefully people like me stumbling upon this issue in the future will have a go-to answer then.

Thanks for taking the time to read through this

@lewing
Copy link
Member

lewing commented May 13, 2021

@curtisy1 a few points:

  1. all the webassembly runtime development happens in https://github.com/dotnet/runtime now, feel free to open an issue there
  2. we love firefox
  3. debuggers are a lot of work to maintain
  4. this is not the place to discuss it (see 1.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants