Uno.Wasm.Bootstrap icon indicating copy to clipboard operation
Uno.Wasm.Bootstrap copied to clipboard

VS breakpoints don't work with WasmShellEnableThreads

Open SerratedSharp opened this issue 2 years ago • 3 comments

In the attached, setting WasmShellEnableThreads to false, breakpoints in VS2022 work. Setting to true, breakpoints do not work. Using .NET 8 RC2 and preview version of VS2022, Version 17.8.0 Preview 6.0 (https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes-preview#1780-pre60--visual-studio-2022-version-178-preview-6)

If this is expected behavior, I would like to propose updating the debugger support documentation to help users avoid this pitfall. Please confirm if you'd consider a PR for the documentation.

https://github.com/unoplatform/Uno.Wasm.Bootstrap/blob/main/doc/debugger-support.md

image

Wasm8Test.Wasm.zip

SerratedSharp avatar Nov 10 '23 20:11 SerratedSharp

Another pitfall perhaps worth noting in documention, is if you use the Project Properties dialog, it can add these sections elsewhere in the project, and the DebugType=full will overwrite DebugType=portable and prevent breakpoints. Often I like to have a Troubleshooting section at the bottom of documentation so that these items can be mentioned to help others, but not interupt/detract from the main flow of the documentation.

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <DebugType>full</DebugType>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <DebugType>full</DebugType>
  </PropertyGroup>
``

SerratedSharp avatar Nov 10 '23 21:11 SerratedSharp

This is a feature that may be missing in the runtime debugger, which we only bundle from the original source. That being said, since Blazor does not support threading, it's likely that there will be additional challenges.

jeromelaban avatar Nov 10 '23 21:11 jeromelaban

This is a feature that may be missing in the runtime debugger, which we only bundle from the original source. That being said, since Blazor does not support threading, it's likely that there will be additional challenges.

If we don't anticipate it being fixed(and or it's out of our control), is it worth mentioning in documentation? I think there's alot of ways debugging can be broken. And without expert knowledge, trying to isolate all the right combination of settings by brute force and get them all aligned to make debugging work can be very time consuming.

SerratedSharp avatar Nov 10 '23 21:11 SerratedSharp