diff options
author | Thays Grazia <thaystg@gmail.com> | 2020-09-16 01:59:29 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-09-16 01:59:29 +0300 |
commit | 191f9fc0a79a138fdb634fbb51cf836a86b4e565 (patch) | |
tree | 3e8d72c57acf4649fe294b0841d09e873c194a77 /Test | |
parent | 9276c6d931b191df38af0859166b798689e22381 (diff) |
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 <jb@evain.net>
Diffstat (limited to 'Test')
-rw-r--r-- | Test/Mono.Cecil.Tests/PortablePdbTests.cs | 22 | ||||
-rw-r--r-- | Test/Resources/assemblies/Microsoft.AspNetCore.Components.dll | bin | 0 -> 145280 bytes | |||
-rw-r--r-- | Test/Resources/assemblies/Microsoft.AspNetCore.Components.pdb | bin | 0 -> 402944 bytes |
3 files changed, 22 insertions, 0 deletions
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); + } + } } diff --git a/Test/Resources/assemblies/Microsoft.AspNetCore.Components.dll b/Test/Resources/assemblies/Microsoft.AspNetCore.Components.dll Binary files differnew file mode 100644 index 0000000..dc82ce8 --- /dev/null +++ b/Test/Resources/assemblies/Microsoft.AspNetCore.Components.dll diff --git a/Test/Resources/assemblies/Microsoft.AspNetCore.Components.pdb b/Test/Resources/assemblies/Microsoft.AspNetCore.Components.pdb Binary files differnew file mode 100644 index 0000000..927bc90 --- /dev/null +++ b/Test/Resources/assemblies/Microsoft.AspNetCore.Components.pdb |