diff --git a/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.Helpers.cs b/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.Helpers.cs index 3d155c6d0c..05193172be 100644 --- a/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.Helpers.cs +++ b/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.Helpers.cs @@ -3,6 +3,7 @@ using System.IO; using System.Linq; using Avalonia.Utilities; using Mono.Cecil; +using Mono.Cecil.Cil; using XamlIl.TypeSystem; namespace Avalonia.Build.Tasks @@ -123,6 +124,26 @@ namespace Avalonia.Build.Tasks public void Remove() => _grp._resources.Remove(Name); } } + + static void CopyDebugDocument(MethodDefinition method, MethodDefinition copyFrom) + { + if (!copyFrom.DebugInformation.HasSequencePoints) + return; + var dbg = method.DebugInformation; + + dbg.Scope = new ScopeDebugInformation(method.Body.Instructions.First(), method.Body.Instructions.First()) + { + End = new InstructionOffset(), + Import = new ImportDebugInformation() + }; + dbg.SequencePoints.Add(new SequencePoint(method.Body.Instructions.First(), + copyFrom.DebugInformation.SequencePoints.First().Document) + { + StartLine = 0xfeefee, + EndLine = 0xfeefee + }); + + } } } diff --git a/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs b/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs index a118684c1d..851b37d302 100644 --- a/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs +++ b/src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs @@ -162,6 +162,7 @@ namespace Avalonia.Build.Tasks trampoline.Body.Instructions.Add(Instruction.Create(OpCodes.Ldarg_0)); trampoline.Body.Instructions.Add(Instruction.Create(OpCodes.Call, compiledPopulateMethod)); trampoline.Body.Instructions.Add(Instruction.Create(OpCodes.Ret)); + CopyDebugDocument(trampoline, compiledPopulateMethod); var foundXamlLoader = false; // Find AvaloniaXamlLoader.Load(this) and replace it with !XamlIlPopulateTrampoline(this) diff --git a/src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github b/src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github index 44705ea346..c8b95cfa9d 160000 --- a/src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github +++ b/src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github @@ -1 +1 @@ -Subproject commit 44705ea346491b26c7e14091cc13b056ee89eaf3 +Subproject commit c8b95cfa9da04dbf4afdd903c9aa76efefd59e42