System.IndexOutOfRangeException at Mono.Cecil.MetadataReader.ReadLocalConstant in certain pdb #773
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Thank you for your work on this project!
I have found an issue where Cecil crashes when trying to load a certain dll+pdb.
Here is a minimal example project to reproduce this, using Cecil 0.11.3:
Bugs.Cecil.IndexOutOfRangeExceptionAtReadLocalConstant.zip
When I run it, I get a crash with
@ashmind thank you for filing this and providing a repro! I'll have a look!
@ashmind out of curiosity, do you have the source for the TestAssembly? That doesn't look like regular C#, and the local constant record doesn't look like it's been properly generated, it says it's a string constant but it has no value. I can fix it to interpret this as a null string value, but the IL does a
ldstr "", so I'm thinking the string constant is for this empty string. If that's the case, the local const entry should have an empty string in thereThanks! The source is
when built with Roslyn directly (Microsoft.CodeAnalysis.CSharp 3.10.0).
E.g: https://sharplab.io/#v2:C4LgTgrgdgNAJiA1AHwAICYCMBYAUHgYwHsoBnYAAlUwAYKA3AQwBsIBTCgXgoCIeBuPAEsowAHQAVMAE8ACozCk2ACias2MCkQiUmYCgH0AlPyA
Unfortunately I can't quickly check if building same with MSBuild and command line compiler produces the same (might depend on the version of course).
Oh it's ok, just a misunderstanding on my side of things, the entry is indeed valid. I've pushed an actual fix in #776.