Browse Source

Fixed step into

Nikita Tsukanov 6 năm trước cách đây
mục cha
commit
6be4062fba

+ 21 - 0
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
+            });
+
+        }
     }
  
 }

+ 1 - 0
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)

+ 1 - 1
src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github

@@ -1 +1 @@
-Subproject commit 44705ea346491b26c7e14091cc13b056ee89eaf3
+Subproject commit c8b95cfa9da04dbf4afdd903c9aa76efefd59e42