From: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 24 Aug 2021 20:37:20 +0000 (-0400) Subject: [release/6.0-rc1] [wasm][debugger] Fixing assert while debugging. (#58032) X-Git-Tag: accepted/tizen/unified/20220110.054933~222^2~22 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a6ccd532aae7598588f900676d6db61a4fa09ca7;p=platform%2Fupstream%2Fdotnet%2Fruntime.git [release/6.0-rc1] [wasm][debugger] Fixing assert while debugging. (#58032) When trying to evaluate DebuggerProxyAttribute of a generic type , it was working only for one parameter . Fixes #58021 Co-authored-by: Thays --- diff --git a/src/mono/wasm/debugger/BrowserDebugProxy/MonoSDBHelper.cs b/src/mono/wasm/debugger/BrowserDebugProxy/MonoSDBHelper.cs index d804421..4182153 100644 --- a/src/mono/wasm/debugger/BrowserDebugProxy/MonoSDBHelper.cs +++ b/src/mono/wasm/debugger/BrowserDebugProxy/MonoSDBHelper.cs @@ -2280,10 +2280,16 @@ namespace Microsoft.WebAssembly.Diagnostics var assemblyNameArg = await GetFullAssemblyName(sessionId, assemblyIdArg, token); var classNameArg = await GetTypeNameOriginal(sessionId, genericTypeArgs[k], token); typeToSearch += classNameArg +", " + assemblyNameArg; + if (k + 1 < genericTypeArgs.Count) + typeToSearch += "], ["; + else + typeToSearch += "]"; } - typeToSearch += "]]"; + typeToSearch += "]"; typeToSearch += ", " + assemblyName; var genericTypeId = await GetTypeByName(sessionId, typeToSearch, token); + if (genericTypeId < 0) + return null; methodId = await GetMethodIdByName(sessionId, genericTypeId, ".ctor", token); } else diff --git a/src/mono/wasm/debugger/DebuggerTestSuite/CustomViewTests.cs b/src/mono/wasm/debugger/DebuggerTestSuite/CustomViewTests.cs index 09bee32..fa188b1 100644 --- a/src/mono/wasm/debugger/DebuggerTestSuite/CustomViewTests.cs +++ b/src/mono/wasm/debugger/DebuggerTestSuite/CustomViewTests.cs @@ -17,7 +17,7 @@ namespace DebuggerTests [Fact] public async Task UsingDebuggerDisplay() { - var bp = await SetBreakpointInMethod("debugger-test.dll", "DebuggerTests.DebuggerCustomViewTest", "run", 6); + var bp = await SetBreakpointInMethod("debugger-test.dll", "DebuggerTests.DebuggerCustomViewTest", "run", 12); var pause_location = await EvaluateAndCheck( "window.setTimeout(function() { invoke_static_method ('[debugger-test] DebuggerTests.DebuggerCustomViewTest:run'); }, 1);", "dotnet://debugger-test.dll/debugger-custom-view-test.cs", @@ -34,7 +34,7 @@ namespace DebuggerTests [Fact] public async Task UsingDebuggerTypeProxy() { - var bp = await SetBreakpointInMethod("debugger-test.dll", "DebuggerTests.DebuggerCustomViewTest", "run", 6); + var bp = await SetBreakpointInMethod("debugger-test.dll", "DebuggerTests.DebuggerCustomViewTest", "run", 12); var pause_location = await EvaluateAndCheck( "window.setTimeout(function() { invoke_static_method ('[debugger-test] DebuggerTests.DebuggerCustomViewTest:run'); }, 1);", "dotnet://debugger-test.dll/debugger-custom-view-test.cs", @@ -54,8 +54,13 @@ namespace DebuggerTests props = await GetObjectOnFrame(frame, "b"); CheckString(props, "Val2", "one"); + CheckObject(locals, "openWith", "System.Collections.Generic.Dictionary", description: "Count = 3"); + props = await GetObjectOnFrame(frame, "openWith"); + Assert.Equal(1, props.Count()); + await EvaluateOnCallFrameAndCheck(frame["callFrameId"].Value(), ("listToTestToList.ToList()", TObject("System.Collections.Generic.List", description: "Count = 11"))); + } } } diff --git a/src/mono/wasm/debugger/tests/debugger-test/debugger-custom-view-test.cs b/src/mono/wasm/debugger/tests/debugger-test/debugger-custom-view-test.cs index ecdccf0..bd25c49 100644 --- a/src/mono/wasm/debugger/tests/debugger-test/debugger-custom-view-test.cs +++ b/src/mono/wasm/debugger/tests/debugger-test/debugger-custom-view-test.cs @@ -67,6 +67,14 @@ namespace DebuggerTests var c = new DebuggerDisplayMethodTest(); List myList = new List{ 1, 2, 3, 4 }; var listToTestToList = System.Linq.Enumerable.Range(1, 11); + + Dictionary openWith = new Dictionary(); + + openWith.Add("txt", "notepad"); + openWith.Add("bmp", "paint"); + openWith.Add("dib", "paint"); + Console.WriteLine("break here"); + Console.WriteLine("break here"); } }