From 191f9fc0a79a138fdb634fbb51cf836a86b4e565 Mon Sep 17 00:00:00 2001 From: Thays Grazia Date: Tue, 15 Sep 2020 19:59:29 -0300 Subject: Fix ReadSymbols in a Module that is already created (#686) * When I try to use ReadSymbols in a Module that is already created, for example: var symbolReader = portablePdbReaderProvider.GetSymbolReader(asm.image, stream); asm.image.ReadSymbols(symbolReader); method.debug_info has a list, but it's empty, so it wasn't entering in the if, but it should, maybe we should change de if to method.debug_info == null || method.debug_info.count = 0. * Adding test. * Fix styling. * Typo Co-authored-by: Jb Evain --- Test/Mono.Cecil.Tests/PortablePdbTests.cs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'Test/Mono.Cecil.Tests') diff --git a/Test/Mono.Cecil.Tests/PortablePdbTests.cs b/Test/Mono.Cecil.Tests/PortablePdbTests.cs index fe60dc8..45b0333 100644 --- a/Test/Mono.Cecil.Tests/PortablePdbTests.cs +++ b/Test/Mono.Cecil.Tests/PortablePdbTests.cs @@ -748,5 +748,27 @@ class Program Assert.AreNotEqual (mvid1_in, mvid2_in); Assert.AreNotEqual (mvid1_out, mvid2_out); } + + [Test] + public void LoadPdbOnDemand () + { + var assembly = File.ReadAllBytes (GetAssemblyResourcePath ("Microsoft.AspNetCore.Components.dll")); + var pdb = File.ReadAllBytes (GetAssemblyResourcePath ("Microsoft.AspNetCore.Components.pdb")); + + var module = ModuleDefinition.ReadModule (new MemoryStream (assembly), new ReaderParameters (ReadingMode.Immediate)); + + var type = module.GetType ("Microsoft.AspNetCore.Components.Rendering.ComponentState"); + var main = type.GetMethod ("RenderIntoBatch"); + var debug_info = main.DebugInformation; + + var pdbReaderProvider = new PdbReaderProvider (); + var symbolReader = pdbReaderProvider.GetSymbolReader (module, new MemoryStream (pdb)); + module.ReadSymbols (symbolReader); + type = module.GetType ("Microsoft.AspNetCore.Components.Rendering.ComponentState"); + main = type.GetMethod ("RenderIntoBatch"); + debug_info = main.DebugInformation; + Assert.AreEqual (9, debug_info.SequencePoints.Count); + } + } } -- cgit v1.2.3