Hi, could you attach or upload the binary that triggers the crash somewhere ?

Thanks !

On Thursday, March 24, 2011, ShdNx <[email protected]> wrote:
> Hey,
>
> I'm trying to read a small test assembly using
> AssemblyDefinition.ReadAssembly, and I get the following exception:
>
> System.TypeInitializationException: The type initializer for
> 'Mono.Cecil.Metadata.TableHeap' threw an exception.
>    at Mono.Cecil.Metadata.TableHeap..ctor(Section section, UInt32
> start, UInt32 size)
>    at Mono.Cecil.PE.ImageReader.ReadMetadataStream(Section section)
>    at Mono.Cecil.PE.ImageReader.ReadMetadata()
>    at Mono.Cecil.PE.ImageReader.ReadImage()
>    at Mono.Cecil.PE.ImageReader.ReadImageFrom(Stream stream)
>    at Mono.Cecil.ModuleDefinition.ReadModule(Stream stream,
> ReaderParameters parameters)
>    at Mono.Cecil.ModuleDefinition.ReadModule(String fileName,
> ReaderParameters parameters)
>    at Mono.Cecil.ModuleDefinition.ReadModule(String fileName)
>    at Mono.Cecil.AssemblyDefinition.ReadAssembly(String fileName)
>    at MyProgram.Main(String[] args) in C:\Dev\...\Program.cs:line 44
>    at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly,
> String[] args)
>    at System.AppDomain.nExecuteAssembly(RuntimeAssembly assembly,
> String[] args)
>    at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence
> assemblySecurity, String[] args)
>    at
> Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
>    at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
>    at System.Threading.ExecutionContext.Run(ExecutionContext
> executionContext, ContextCallback callback, Object state, Boolean
> ignoreSyncCtx)
>    at System.Threading.ExecutionContext.Run(ExecutionContext
> executionContext, ContextCallback callback, Object state)
>    at System.Threading.ThreadHelper.ThreadStart()
>
> Here is the InnerException:
>
> System.ArgumentException: Value does not fall within the expected
> range.
>    at
> System.Runtime.CompilerServices.RuntimeHelpers.InitializeArray(Array
> array, RuntimeFieldHandle fldHandle)
>    at Mono.Cecil.Metadata.TableHeap..cctor()
>
> The test assembly I'm trying to load is a tiny .NET 4 console
> application, here is the complete source code:
>
> class Program
> {
>     [Cached]
>     private static string _SomeExpensiveMethod()
>     {
>         Console.WriteLine("Expensive operation...");
>         return "stuff";
>     }
>
>     [Cached]
>     private static StringBuilder _GetBuilder()
>     {
>         Console.WriteLine("Creating builder...");
>         return new StringBuilder();
>     }
>
>     static void Main(string[] args)
>     {
>         string r1 = _SomeExpensiveMethod();
>         Console.WriteLine("Res: " + r1);
>         string r2 = _SomeExpensiveMethod();
>         Console.WriteLine("Res: " + r2);
>
>         _GetBuilder();
>         _GetBuilder();
>
>         Console.ReadKey();
>     }
> }
>
> The only thing worth mentioning are the CachedAttributes: they are
> custom attributes from a project-referenced assembly.
> What is interesting is that when I try to run my application in the
> post-build event of the test project above, it works fine - I get the
> error when I start the application directly. At first I thought that
> it was some issue with relative paths, but the paths are relative in
> the post-build event as well.
>
> I have also seen this exception earlier when trying to open an
> obfuscated assembly (my test assembly is NOT obfuscated), but I
> thought it was because of the obfuscation. Now I'm not so sure.
>
> Mono.Cecil version 0.9.4.0, binaries only. I could download the source
> code, but that would mean installing git, which I'd never use
> afterwards, and I hate having programs lying around.
>
> Any hints?
> Thank you very much in advance! And thanks for this great library!
>
> --
> --
> mono-cecil

-- 
--
mono-cecil

Reply via email to