[Mono-list] Unknown heap type?

Serge serge@wildwestsoftware.com
Mon, 19 Aug 2002 22:58:29 +0300


> I think #- may be one of the streams the ms compilers insert
> in the binary in some cases (maybe it's the uncompressed metadata
> tables stream?).

Here is some info.
It's indeed uncompressed data stream, it's mentioned briefly in Part II, 23.2.2
"Some compilers store metadata in a #- stream, which holds an uncompressed, or non-optimized, representation of metadata tables;
this includes extra metadata "pointer" tables."

Those pointer tables are:
    FieldPtr
    MethodPtr
    ParamPtr
    EventPtr
    PropertyPtr
    TypeTyPar
    MethodTyPar

There are also ENCLog, ENCMap tables, not sure what it is.
The stream is pretty straight-forward to reverse-engineer, but I don't think it's useful to add support for the stream.
I don't think it's produced due to incremental build (it sometimes generated even when -incremental is disabled),
but rather has to do with edit'n'continue debugging.
J# Beta always produces this stream instead of #~ however.
It seems that for C#, enabling optimizations (or using default Release build settings in VS) always eliminates this stream.

Sergey


----- Original Message -----
From: "Paolo Molaro" <lupus@ximian.com>
To: "Mono-list" <Mono-list@ximian.com>
Sent: Monday, August 19, 2002 9:15 PM
Subject: Re: [Mono-list] Unknown heap type?


> On 08/19/02 J. Perkins wrote:
> > I have a relatively small app that I use to generate my project
> > build scripts (for GNU tools, Viz Studio, etc.) I had been
> > compiling it with csc, and then running it under Mono on Linux.
> > I recently made some changes, and now Mono is giving me:
> >
> > ** Message: Unknown heap type: #-
> >
> > ...followed by a null reference. I have not been able to create
> > a smaller test case than the full app that will cause this fault.
> > Is there anything that I can do to help isolate this problem, so
> > that I can log a useful bug report? Alternatively, I could post
> > the sources and a binary on my website, if that would help.
>
> I think #- may be one of the streams the ms compilers insert
> in the binary in some cases (maybe it's the uncompressed metadata
> tables stream?).
> The format of such a table is not in the standard, so we'll likely have
> to just skip it.
> An url for the binary would help, though it would be better if you
> posted the command line switches to create a binary with such a stream.
> Is it the /incremental switch?
> If anybody knows the format of the #- stream heap or can point at
> some documentation, that would be welcome as well (hi MS people!:-).
>
> lupus
>
> --
> -----------------------------------------------------------------
> lupus@debian.org                                     debian/rules
> lupus@ximian.com                             Monkeys do it better
>