Browse Source

Fixed step into

pull/2322/head
Nikita Tsukanov 7 years ago
parent
commit
6be4062fba
  1. 21
      src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.Helpers.cs
  2. 1
      src/Avalonia.Build.Tasks/XamlCompilerTaskExecutor.cs
  3. 2
      src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github

21
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
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)

2
src/Markup/Avalonia.Markup.Xaml/XamlIl/xamlil.github

@ -1 +1 @@
Subproject commit 44705ea346491b26c7e14091cc13b056ee89eaf3
Subproject commit c8b95cfa9da04dbf4afdd903c9aa76efefd59e42
Loading…
Cancel
Save