Repository navigation
WasmFingerprintAssets false breaks type/value information in WASM debugging #122201
Description
Activity
- addeduntriagedNew issue has not been triaged by the area ownerNew issue has not been triaged by the area owner
on Dec 4, 2025 dotnet-policy-service commented
on Dec 4, 2025 ContributorMore actionsTagging subscribers to this area: @thaystg, @dotnet/dotnet-diag
See info in area-owners.md if you want to be subscribed.- addedarch-wasmWebAssembly architectureWebAssembly architectureos-browserBrowser variant of arch-wasmBrowser variant of arch-wasm
on Jan 29, 2026 dotnet-policy-service commented
on Jan 29, 2026 ContributorMore actionsTagging subscribers to 'arch-wasm': @lewing, @pavelsavara
See info in area-owners.md if you want to be subscribed.I guess this is somehow related to
loaderHelpers._loaded_filesandINTERNAL.mono_wasm_get_loaded_files()The error is from
runtime/src/mono/mono/component/debugger-agent.c
Lines 2041 to 2043 in a9d1ab6
// FIXME: error handling dbg_lock (); g_assert (id > 0 && GINT_TO_UINT(id) <= ids [type]->len); It would be great to see the whole stack trace.
@ArcadeMode Could you please recompile the app with wasm workload and
<PropertyGroup> <WasmNativeDebugSymbols>true</WasmNativeDebugSymbols> <WasmNativeStrip>false</WasmNativeStrip> </PropertyGroup>
and capture the native stack trace again ?
Thanks!
Is this trying to guess assembly name from URL (with fingerprint) ?
runtime/src/mono/browser/debugger/BrowserDebugProxy/MonoProxy.cs
Lines 150 to 155 in a9d1ab6
if (args["url"]?.ToString()?.Contains("/_framework/") == true) //is from dotnet runtime framework { if (Contexts.TryGetCurrentExecutionContextValue(sessionId, out ExecutionContext context)) context.FrameworkScriptList.Add(args["scriptId"].Value<int>()); } return false; The piece that tries to guess assembly name based on fingerprint is in https://github.com/dotnet/runtime/pull/103755/changes#diff-e11dabfb758c8f0b3b1dae36ce80d16749918b5fd6511f4226f7e98554f01676 (DebugStore.cs). It is for the older debugger. I'm not sure about the new debugger
- removeduntriagedNew issue has not been triaged by the area ownerNew issue has not been triaged by the area owner
on Jan 29, 2026 I've gotten the following exceptions from the console with
WasmNativeDebugSymbolsandWasmNativeStripset as asked.[MONO] * Assertion at /__w/1/s/src/runtime/src/mono/mono/component/debugger-agent.c:2043, condition `<disabled>' not met Error at Mc (logging.ts:125:60) at dotnet.native.wasm.wasm_trace_logger (dotnet.native.wasm:0x2b67f6) at dotnet.native.wasm.eglib_log_adapter (dotnet.native.wasm:0x4bb57) at dotnet.native.wasm.monoeg_g_logv_nofree (dotnet.native.wasm:0x495af) at dotnet.native.wasm.monoeg_assertion_message (dotnet.native.wasm:0x49755) at dotnet.native.wasm.mono_assertion_message (dotnet.native.wasm:0x497bc) at dotnet.native.wasm.mono_assertion_message_disabled (dotnet.native.wasm:0x4977b) at dotnet.native.wasm.decode_ptr_id (dotnet.native.wasm:0x9be82) at dotnet.native.wasm.mono_process_dbg_packet (dotnet.native.wasm:0xa2f40) at dotnet.native.wasm.mono_wasm_send_dbg_command (dotnet.native.wasm:0x90170)
program exited (with status: 1), but keepRuntimeAlive() is set (counter=1) due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)
Reacted by Pavel Savara
Description
I have found that the build property
WasmFingerprintAssetshas been the cause of my severely impaired debugging experience on a WASM Browser App (SDKMicrosoft.NET.Sdk.WebAssembly).Stepping works somehow, control flow etc reflects fine, but anything related to types or locals is showing the error below. I have not been able to find any sensible logging explaining why, I managed to find this by stripping my solution down step by step.
The browser console contains the following message, a couple dozen times.
Reproduction Steps
A minimal repro that i verified on a sample project:
<WasmFingerprintAssets>false</WasmFingerprintAssets>to the.csprojExpected behavior
The debugging experience remains the same with or without the WasmFingerprintAssets property set.
Actual behavior
Locals and type information is not available during debugging. Stepping still works.
Anything like a (quick)watch of local inspection attempt results in the message
Internal error in the C# compiler.Regression?
Known Workarounds
Keep
WasmFingerprintAssetsset totrueresolves the debugging issues.Configuration
Built with the latest .NET 10.0.100 SDK bundle. Running on the Mono wasm runtime.
Windows 10/11 same problem.
I presume this is not specific to my machine configuration.
Its happened in Chrome 142.0.7444.176
Other information
No response