diff options
author | Marek Safar <marek.safar@gmail.com> | 2022-10-06 12:15:52 +0300 |
---|---|---|
committer | Marek Safar <marek.safar@gmail.com> | 2022-10-06 12:15:52 +0300 |
commit | 186a05b95879dd6f546bf2e21aaa54680d3d4711 (patch) | |
tree | cda666d27eb727e45cfbff127e2b06d9156050ca | |
parent | 1840b7410d37a613e684b6f9650e39e2d4950bbb (diff) | |
parent | e052ab52e44fd2a6564964e47e79929068731916 (diff) |
Merge remote-tracking branch 'upstream/master' into sync
-rw-r--r-- | .editorconfig | 14 | ||||
-rw-r--r-- | Mono.Cecil.Cil/Instruction.cs | 3 | ||||
-rw-r--r-- | Mono.Cecil/AssemblyReader.cs | 19 | ||||
-rw-r--r-- | Mono.Cecil/AssemblyWriter.cs | 1 | ||||
-rw-r--r-- | Mono.Cecil/MetadataSystem.cs | 50 | ||||
-rw-r--r-- | Mono.Cecil/MethodCallingConvention.cs | 1 | ||||
-rw-r--r-- | Mono.Cecil/MethodDefinition.cs | 5 | ||||
-rw-r--r-- | Mono.Cecil/MethodImplAttributes.cs | 33 | ||||
-rw-r--r-- | Test/Mono.Cecil.Tests/ILProcessorTests.cs | 3 | ||||
-rw-r--r-- | Test/Mono.Cecil.Tests/PortablePdbTests.cs | 17 | ||||
-rw-r--r-- | Test/Resources/assemblies/NullConst.dll | bin | 0 -> 5120 bytes | |||
-rw-r--r-- | Test/Resources/assemblies/NullConst.pdb | bin | 0 -> 10424 bytes | |||
-rw-r--r-- | symbols/pdb/Microsoft.Cci.Pdb/PdbFile.cs | 6 | ||||
-rw-r--r-- | symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs | 23 | ||||
-rw-r--r-- | symbols/pdb/Test/Resources/assemblies/MixedNativeCLI.exe | bin | 0 -> 34816 bytes | |||
-rw-r--r-- | symbols/pdb/Test/Resources/assemblies/MixedNativeCLI.exe.metagen | 5 | ||||
-rw-r--r-- | symbols/pdb/Test/Resources/assemblies/MixedNativeCLI.pdb | bin | 0 -> 847872 bytes |
17 files changed, 82 insertions, 98 deletions
diff --git a/.editorconfig b/.editorconfig index 6868a57..e1d9b64 100644 --- a/.editorconfig +++ b/.editorconfig @@ -8,4 +8,16 @@ csharp_space_between_method_call_name_and_opening_parenthesis = true csharp_space_before_open_square_brackets = true csharp_new_line_before_open_brace = methods csharp_new_line_before_else = false -csharp_indent_switch_labels = false
\ No newline at end of file +csharp_indent_switch_labels = false + +trim_trailing_whitespace = false + +dotnet_naming_symbols.fields_locals_and_parameters.applicable_kinds = field, local, parameter +dotnet_naming_symbols.fields_locals_and_parameters.applicable_accessibilities = * + +dotnet_naming_style.snake_case.capitalization = all_lower +dotnet_naming_style.snake_case.word_separator = _ + +dotnet_naming_rule.fields_locals_and_parameters_use_snake_case.symbols = fields_locals_and_parameters +dotnet_naming_rule.fields_locals_and_parameters_use_snake_case.style = snake_case +dotnet_naming_rule.fields_locals_and_parameters_use_snake_case.severity = suggestion diff --git a/Mono.Cecil.Cil/Instruction.cs b/Mono.Cecil.Cil/Instruction.cs index d0d0081..4b5eea9 100644 --- a/Mono.Cecil.Cil/Instruction.cs +++ b/Mono.Cecil.Cil/Instruction.cs @@ -9,6 +9,7 @@ // using System; +using System.Globalization; using System.Text; namespace Mono.Cecil.Cil { @@ -131,7 +132,7 @@ namespace Mono.Cecil.Cil { instruction.Append ('\"'); break; default: - instruction.Append (operand); + instruction.Append (Convert.ToString(operand, CultureInfo.InvariantCulture)); break; } diff --git a/Mono.Cecil/AssemblyReader.cs b/Mono.Cecil/AssemblyReader.cs index 4180d78..0756fa8 100644 --- a/Mono.Cecil/AssemblyReader.cs +++ b/Mono.Cecil/AssemblyReader.cs @@ -899,8 +899,6 @@ namespace Mono.Cecil { nested_types.Add (nested_type); } - metadata.RemoveNestedTypeMapping (type); - return nested_types; } @@ -975,7 +973,6 @@ namespace Mono.Cecil { if (!metadata.TryGetReverseNestedTypeMapping (type, out declaring_rid)) return null; - metadata.RemoveReverseNestedTypeMapping (type); return GetTypeDefinition (declaring_rid); } @@ -1242,8 +1239,6 @@ namespace Mono.Cecil { new MetadataToken(TokenType.InterfaceImpl, mapping [i].Col1))); } - metadata.RemoveInterfaceMapping (type); - return interfaces; } @@ -1466,8 +1461,6 @@ namespace Mono.Cecil { var events = new MemberDefinitionCollection<EventDefinition> (type, (int) range.Length); - metadata.RemoveEventsRange (type); - if (range.Length == 0) return events; @@ -1536,8 +1529,6 @@ namespace Mono.Cecil { if (!metadata.TryGetPropertiesRange (type, out range)) return new MemberDefinitionCollection<PropertyDefinition> (type); - metadata.RemovePropertiesRange (type); - var properties = new MemberDefinitionCollection<PropertyDefinition> (type, (int) range.Length); if (range.Length == 0) @@ -1912,8 +1903,6 @@ namespace Mono.Cecil { if (!metadata.TryGetGenericParameterRanges (provider, out ranges)) return new GenericParameterCollection (provider); - metadata.RemoveGenericParameterRange (provider); - var generic_parameters = new GenericParameterCollection (provider, RangesSize (ranges)); for (int i = 0; i < ranges.Length; i++) @@ -2029,8 +2018,6 @@ namespace Mono.Cecil { new MetadataToken (TokenType.GenericParamConstraint, mapping [i].Col1))); } - metadata.RemoveGenericConstraintMapping (generic_parameter); - return constraints; } @@ -2083,8 +2070,6 @@ namespace Mono.Cecil { for (int i = 0; i < mapping.Count; i++) overrides.Add ((MethodReference) LookupToken (mapping [i])); - metadata.RemoveOverrideMapping (method); - return overrides; } @@ -2521,8 +2506,6 @@ namespace Mono.Cecil { for (int i = 0; i < ranges.Length; i++) ReadCustomAttributeRange (ranges [i], custom_attributes); - metadata.RemoveCustomAttributeRange (owner); - if (module.IsWindowsMetadata ()) foreach (var custom_attribute in custom_attributes) WindowsRuntimeProjections.Project (owner, custom_attribute); @@ -2676,8 +2659,6 @@ namespace Mono.Cecil { for (int i = 0; i < ranges.Length; i++) ReadSecurityDeclarationRange (ranges [i], security_declarations); - metadata.RemoveSecurityDeclarationRange (owner); - return security_declarations; } diff --git a/Mono.Cecil/AssemblyWriter.cs b/Mono.Cecil/AssemblyWriter.cs index b8b2b14..91edba0 100644 --- a/Mono.Cecil/AssemblyWriter.cs +++ b/Mono.Cecil/AssemblyWriter.cs @@ -2198,6 +2198,7 @@ namespace Mono.Cecil { case ElementType.None: case ElementType.Var: case ElementType.MVar: + case ElementType.GenericInst: signature.WriteInt32 (0); break; case ElementType.String: diff --git a/Mono.Cecil/MetadataSystem.cs b/Mono.Cecil/MetadataSystem.cs index 749a39c..a877771 100644 --- a/Mono.Cecil/MetadataSystem.cs +++ b/Mono.Cecil/MetadataSystem.cs @@ -243,11 +243,6 @@ namespace Mono.Cecil { NestedTypes [type_rid] = mapping; } - public void RemoveNestedTypeMapping (TypeDefinition type) - { - NestedTypes.Remove (type.token.RID); - } - public bool TryGetReverseNestedTypeMapping (TypeDefinition type, out uint declaring) { return ReverseNestedTypes.TryGetValue (type.token.RID, out declaring); @@ -258,11 +253,6 @@ namespace Mono.Cecil { ReverseNestedTypes [nested] = declaring; } - public void RemoveReverseNestedTypeMapping (TypeDefinition type) - { - ReverseNestedTypes.Remove (type.token.RID); - } - public bool TryGetInterfaceMapping (TypeDefinition type, out Collection<Row<uint, MetadataToken>> mapping) { return Interfaces.TryGetValue (type.token.RID, out mapping); @@ -273,11 +263,6 @@ namespace Mono.Cecil { Interfaces [type_rid] = mapping; } - public void RemoveInterfaceMapping (TypeDefinition type) - { - Interfaces.Remove (type.token.RID); - } - public void AddPropertiesRange (uint type_rid, Range range) { Properties.Add (type_rid, range); @@ -288,11 +273,6 @@ namespace Mono.Cecil { return Properties.TryGetValue (type.token.RID, out range); } - public void RemovePropertiesRange (TypeDefinition type) - { - Properties.Remove (type.token.RID); - } - public void AddEventsRange (uint type_rid, Range range) { Events.Add (type_rid, range); @@ -303,41 +283,21 @@ namespace Mono.Cecil { return Events.TryGetValue (type.token.RID, out range); } - public void RemoveEventsRange (TypeDefinition type) - { - Events.Remove (type.token.RID); - } - public bool TryGetGenericParameterRanges (IGenericParameterProvider owner, out Range [] ranges) { return GenericParameters.TryGetValue (owner.MetadataToken, out ranges); } - public void RemoveGenericParameterRange (IGenericParameterProvider owner) - { - GenericParameters.Remove (owner.MetadataToken); - } - public bool TryGetCustomAttributeRanges (ICustomAttributeProvider owner, out Range [] ranges) { return CustomAttributes.TryGetValue (owner.MetadataToken, out ranges); } - public void RemoveCustomAttributeRange (ICustomAttributeProvider owner) - { - CustomAttributes.Remove (owner.MetadataToken); - } - public bool TryGetSecurityDeclarationRanges (ISecurityDeclarationProvider owner, out Range [] ranges) { return SecurityDeclarations.TryGetValue (owner.MetadataToken, out ranges); } - public void RemoveSecurityDeclarationRange (ISecurityDeclarationProvider owner) - { - SecurityDeclarations.Remove (owner.MetadataToken); - } - public bool TryGetGenericConstraintMapping (GenericParameter generic_parameter, out Collection<Row<uint, MetadataToken>> mapping) { return GenericConstraints.TryGetValue (generic_parameter.token.RID, out mapping); @@ -348,11 +308,6 @@ namespace Mono.Cecil { GenericConstraints [gp_rid] = mapping; } - public void RemoveGenericConstraintMapping (GenericParameter generic_parameter) - { - GenericConstraints.Remove (generic_parameter.token.RID); - } - public bool TryGetOverrideMapping (MethodDefinition method, out Collection<MetadataToken> mapping) { return Overrides.TryGetValue (method.token.RID, out mapping); @@ -363,11 +318,6 @@ namespace Mono.Cecil { Overrides [rid] = mapping; } - public void RemoveOverrideMapping (MethodDefinition method) - { - Overrides.Remove (method.token.RID); - } - public Document GetDocument (uint rid) { if (rid < 1 || rid > Documents.Length) diff --git a/Mono.Cecil/MethodCallingConvention.cs b/Mono.Cecil/MethodCallingConvention.cs index f9c0e0c..80f3e97 100644 --- a/Mono.Cecil/MethodCallingConvention.cs +++ b/Mono.Cecil/MethodCallingConvention.cs @@ -17,6 +17,7 @@ namespace Mono.Cecil { ThisCall = 0x3, FastCall = 0x4, VarArg = 0x5, + Unmanaged = 0x9, Generic = 0x10, } } diff --git a/Mono.Cecil/MethodDefinition.cs b/Mono.Cecil/MethodDefinition.cs index b4b88d9..b4e4376 100644 --- a/Mono.Cecil/MethodDefinition.cs +++ b/Mono.Cecil/MethodDefinition.cs @@ -440,6 +440,11 @@ namespace Mono.Cecil { set { impl_attributes = impl_attributes.SetAttributes ((ushort) MethodImplAttributes.AggressiveInlining, value); } } + public bool AggressiveOptimization { + get { return impl_attributes.GetAttributes ((ushort) MethodImplAttributes.AggressiveOptimization); } + set { impl_attributes = impl_attributes.SetAttributes ((ushort) MethodImplAttributes.AggressiveOptimization, value); } + } + #endregion #region MethodSemanticsAttributes diff --git a/Mono.Cecil/MethodImplAttributes.cs b/Mono.Cecil/MethodImplAttributes.cs index 2f1f018..23e857b 100644 --- a/Mono.Cecil/MethodImplAttributes.cs +++ b/Mono.Cecil/MethodImplAttributes.cs @@ -14,23 +14,24 @@ namespace Mono.Cecil { [Flags] public enum MethodImplAttributes : ushort { - CodeTypeMask = 0x0003, - IL = 0x0000, // Method impl is CIL - Native = 0x0001, // Method impl is native - OPTIL = 0x0002, // Reserved: shall be zero in conforming implementations - Runtime = 0x0003, // Method impl is provided by the runtime + CodeTypeMask = 0x0003, + IL = 0x0000, // Method impl is CIL + Native = 0x0001, // Method impl is native + OPTIL = 0x0002, // Reserved: shall be zero in conforming implementations + Runtime = 0x0003, // Method impl is provided by the runtime - ManagedMask = 0x0004, // Flags specifying whether the code is managed or unmanaged - Unmanaged = 0x0004, // Method impl is unmanaged, otherwise managed - Managed = 0x0000, // Method impl is managed + ManagedMask = 0x0004, // Flags specifying whether the code is managed or unmanaged + Unmanaged = 0x0004, // Method impl is unmanaged, otherwise managed + Managed = 0x0000, // Method impl is managed - // Implementation info and interop - ForwardRef = 0x0010, // Indicates method is defined; used primarily in merge scenarios - PreserveSig = 0x0080, // Reserved: conforming implementations may ignore - InternalCall = 0x1000, // Reserved: shall be zero in conforming implementations - Synchronized = 0x0020, // Method is single threaded through the body - NoOptimization = 0x0040, // Method is not optimized by the JIT. - NoInlining = 0x0008, // Method may not be inlined - AggressiveInlining = 0x0100, // Method should be inlined, if possible. + ForwardRef = 0x0010, // The method is declared, but its implementation is provided elsewhere. + PreserveSig = 0x0080, // The method signature is exported exactly as declared. + InternalCall = 0x1000, // The call is internal, that is, it calls a method that's implemented within the CLR. + Synchronized = 0x0020, // The method can be executed by only one thread at a time. + // Static methods lock on the type, whereas instance methods lock on the instance. + NoOptimization = 0x0040, // The method is not optimized by the just-in-time (JIT) compiler or by native codegen. + NoInlining = 0x0008, // The method cannot be inlined. + AggressiveInlining = 0x0100, // The method should be inlined if possible. + AggressiveOptimization = 0x0200, // The method contains code that should always be optimized by the JIT compiler. } } diff --git a/Test/Mono.Cecil.Tests/ILProcessorTests.cs b/Test/Mono.Cecil.Tests/ILProcessorTests.cs index 09b17a6..fd462c3 100644 --- a/Test/Mono.Cecil.Tests/ILProcessorTests.cs +++ b/Test/Mono.Cecil.Tests/ILProcessorTests.cs @@ -470,7 +470,8 @@ namespace Mono.Cecil.Tests { }; // For some reason the Native PDB reader/writer store the custom info on the method.DebugInfo.CustomInfo, while portable PDB stores it on method.CustomInfo. - var customDebugInfo = roundtripType == RoundtripType.Pdb ? method.DebugInformation.CustomDebugInformations : method.CustomDebugInformations; + var customDebugInfo = (roundtripType == RoundtripType.Pdb && Platform.HasNativePdbSupport) + ? method.DebugInformation.CustomDebugInformations : method.CustomDebugInformations; customDebugInfo.Add (new StateMachineScopeDebugInformation () { Scopes = { new StateMachineScope(instructions[1], instructions[6]) diff --git a/Test/Mono.Cecil.Tests/PortablePdbTests.cs b/Test/Mono.Cecil.Tests/PortablePdbTests.cs index 3aa0ffc..a89f79d 100644 --- a/Test/Mono.Cecil.Tests/PortablePdbTests.cs +++ b/Test/Mono.Cecil.Tests/PortablePdbTests.cs @@ -454,6 +454,23 @@ namespace Mono.Cecil.Tests { } [Test] + public void NullGenericInstConstant () + { + TestModule ("NullConst.dll", module => { + var type = module.GetType ("NullConst.Program"); + var method = type.GetMethod ("MakeConst"); + var symbol = method.DebugInformation; + + Assert.IsNotNull (symbol); + Assert.AreEqual (1, symbol.Scope.Constants.Count); + + var a = symbol.Scope.Constants [0]; + Assert.AreEqual ("thing", a.Name); + Assert.AreEqual (null, a.Value); + }, verify: false, symbolReaderProvider: typeof (PortablePdbReaderProvider), symbolWriterProvider: typeof (PortablePdbWriterProvider)); + } + + [Test] public void InvalidConstantRecord () { using (var module = GetResourceModule ("mylib.dll", new ReaderParameters { SymbolReaderProvider = new PortablePdbReaderProvider () })) { diff --git a/Test/Resources/assemblies/NullConst.dll b/Test/Resources/assemblies/NullConst.dll Binary files differnew file mode 100644 index 0000000..7c58453 --- /dev/null +++ b/Test/Resources/assemblies/NullConst.dll diff --git a/Test/Resources/assemblies/NullConst.pdb b/Test/Resources/assemblies/NullConst.pdb Binary files differnew file mode 100644 index 0000000..e70f2c2 --- /dev/null +++ b/Test/Resources/assemblies/NullConst.pdb diff --git a/symbols/pdb/Microsoft.Cci.Pdb/PdbFile.cs b/symbols/pdb/Microsoft.Cci.Pdb/PdbFile.cs index b4d4705..6c18b88 100644 --- a/symbols/pdb/Microsoft.Cci.Pdb/PdbFile.cs +++ b/symbols/pdb/Microsoft.Cci.Pdb/PdbFile.cs @@ -68,9 +68,9 @@ namespace Microsoft.Cci.Pdb { BitSet present = new BitSet(bits); BitSet deleted = new BitSet(bits); - if (!deleted.IsEmpty) { - throw new PdbDebugException("Unsupported PDB deleted bitset is not empty."); - } + //if (!deleted.IsEmpty) { + // throw new PdbDebugException("Unsupported PDB deleted bitset is not empty."); + //} int j = 0; for (int i = 0; i < max; i++) { diff --git a/symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs b/symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs index 6f2d2fa..86dfb3d 100644 --- a/symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs +++ b/symbols/pdb/Test/Mono.Cecil.Tests/PdbTests.cs @@ -1,6 +1,5 @@ using System.IO; using System.Linq; - using Mono.Cecil.Cil; using Mono.Cecil.Pdb; @@ -56,7 +55,7 @@ namespace Mono.Cecil.Tests { IL_0020: ldloc.1 IL_0021: ret ", main); - }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof(PdbReaderProvider), symbolWriterProvider: typeof(PdbWriterProvider)); + }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider)); } [Test] @@ -82,7 +81,7 @@ namespace Mono.Cecil.Tests { Assert.AreEqual ("i", variables [0].Name); Assert.IsFalse (variables [0].IsDebuggerHidden); - }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof(PdbReaderProvider), symbolWriterProvider: typeof(PdbWriterProvider)); + }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider)); } [Test] @@ -103,7 +102,7 @@ namespace Mono.Cecil.Tests { Assert.AreEqual (new byte [] { 228, 176, 152, 54, 82, 238, 238, 68, 237, 156, 5, 142, 118, 160, 118, 245 }, document.Hash); Assert.AreEqual (DocumentLanguage.CSharp, document.Language); Assert.AreEqual (DocumentLanguageVendor.Microsoft, document.LanguageVendor); - }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof(PdbReaderProvider), symbolWriterProvider: typeof(PdbWriterProvider)); + }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider)); } [Test] @@ -124,7 +123,7 @@ namespace Mono.Cecil.Tests { Assert.AreEqual (new byte [] { 184, 188, 100, 23, 27, 123, 187, 201, 175, 206, 110, 198, 242, 139, 154, 119 }, document.Hash); Assert.AreEqual (DocumentLanguage.Basic, document.Language); Assert.AreEqual (DocumentLanguageVendor.Microsoft, document.LanguageVendor); - }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof(PdbReaderProvider), symbolWriterProvider: typeof(PdbWriterProvider)); + }, readOnly: !Platform.HasNativePdbSupport, symbolReaderProvider: typeof (PdbReaderProvider), symbolWriterProvider: typeof (PdbWriterProvider)); } [Test] @@ -248,7 +247,7 @@ namespace Mono.Cecil.Tests { constant = scope.Constants [1]; Assert.AreEqual ("c", constant.Name); - Assert.AreEqual ((decimal) 74, constant.Value); + Assert.AreEqual ((decimal)74, constant.Value); Assert.AreEqual (MetadataType.ValueType, constant.ConstantType.MetadataType); method = type.GetMethod ("Foo"); @@ -448,7 +447,7 @@ namespace Mono.Cecil.Tests { method.DebugInformation.SequencePoints.Add (sequence_point); - method.DebugInformation.Scope = new ScopeDebugInformation (body.Instructions [0], null) { + method.DebugInformation.Scope = new ScopeDebugInformation (body.Instructions [0], null) { Variables = { new VariableDebugInformation (temp, "temp") } }; @@ -476,5 +475,15 @@ namespace Mono.Cecil.Tests { Assert.IsTrue (module.HasSymbols); }, symbolReaderProvider: typeof (NativePdbReaderProvider), symbolWriterProvider: typeof (NativePdbWriterProvider)); } + + [Test] + public void ReadPdbMixedNativeCLIModule () + { + // MixedNativeCLI.exe was copy/pasted from from https://docs.microsoft.com/en-us/cpp/preprocessor/managed-unmanaged?view=msvc-170#example + TestModule ("MixedNativeCLI.exe", module => { + module.ReadSymbols (); + }, readOnly: true); + } + } } diff --git a/symbols/pdb/Test/Resources/assemblies/MixedNativeCLI.exe b/symbols/pdb/Test/Resources/assemblies/MixedNativeCLI.exe Binary files differnew file mode 100644 index 0000000..b2fbecb --- /dev/null +++ b/symbols/pdb/Test/Resources/assemblies/MixedNativeCLI.exe diff --git a/symbols/pdb/Test/Resources/assemblies/MixedNativeCLI.exe.metagen b/symbols/pdb/Test/Resources/assemblies/MixedNativeCLI.exe.metagen new file mode 100644 index 0000000..ef3c1a8 --- /dev/null +++ b/symbols/pdb/Test/Resources/assemblies/MixedNativeCLI.exe.metagen @@ -0,0 +1,5 @@ +ImageRuntimeVersion: v4.0.30319 +Assembly MixedNativeCLI, Version=0.0.*, Culture=Invariant Language (Invariant Country): + hash=SHA1, flags=PublicKey +Assembly mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089: + hash=None, flags=None diff --git a/symbols/pdb/Test/Resources/assemblies/MixedNativeCLI.pdb b/symbols/pdb/Test/Resources/assemblies/MixedNativeCLI.pdb Binary files differnew file mode 100644 index 0000000..2bb2e08 --- /dev/null +++ b/symbols/pdb/Test/Resources/assemblies/MixedNativeCLI.pdb |