[Mono-dev] Compiling System.Web with CSC

Eyal Alaluf eyala at mainsoft.com
Tue Oct 11 13:34:47 EDT 2005

Hi, all.

We prefer the solution where mcs is generating pdb files. This solution is well aligned
with our strategy for the long term. In case the mcs/pdb project is not so simple and
easy to implement soon, we need to examine the shorter term solutions.

Checking the approach of using .Net 2.0 compiler, I took a less hacky approach where
I analyzed the assembly created by .Net 2.0 compiler (using ildasm) and added to our
binary compiler the few new .Net 2.0 opcodes that were used. I will still need to see
how to read the PDB files of MS .Net 2.0, but this should be feasible.


On Wed, 28 Sep 2005, Kornél Pál wrote:

> Date: Wed, 28 Sep 2005 18:04:59 +0200
> From: Kornél Pál <kornelpal at hotmail.com>
> To: Eyal Alaluf <eyala at mainsoft.com>, Miguel de Icaza <miguel at ximian.com>
> Cc: martin at ximian.com, mono-devel-list at lists.ximian.com,
>     Philippe Cohen <philc at mainsoft.com>, Noam Lampert <noaml at mainsoft.com>
> Subject: Re: [Mono-dev] Compiling System.Web with CSC
> Hi,
> MS ildasm is able to extract information from PDB files to IL code. If there
> is a PDB file it includes variable names in IL code an with /linenum switch
> it will emit line number information as well.
> MS ilasm generates a PDB with /debug switch that will contain the names of
> local variables and line numbers. And I think all the other usual symbols.
> Kornél
> ----- Original Message -----
> From: "Eyal Alaluf" <eyala at mainsoft.com>
> To: "Miguel de Icaza" <miguel at ximian.com>
> Cc: <martin at ximian.com>; <mono-devel-list at lists.ximian.com>; "Philippe
> Cohen" <philc at mainsoft.com>; "Noam Lampert" <noaml at mainsoft.com>
> Sent: Wednesday, September 28, 2005 5:52 PM
> Subject: Re: [Mono-dev] Compiling System.Web with CSC
>> Hi, Miguel.
>> The option of playing with ilasm/ildasm will mess out completely the debug
>> information. PDB uses the tokens from the DLL to identify the class,
>> method,
>> etc. The tokens will be completely messed up by this exercise.
>> I will look at the output of ildasm to analyze better the .Net 2.0
>> dependencies
>> to see if we can come up with some kind of hack for using the CSC 2.0
>> compiler.
>> Eyal.
>> On Tue, 27 Sep 2005, Miguel de Icaza wrote:
>>> Date: Tue, 27 Sep 2005 18:12:03 -0400
>>> From: Miguel de Icaza <miguel at ximian.com>
>>> To: Eyal Alaluf <eyala at mainsoft.com>
>>> Cc: martin at ximian.com, Noam Lampert <noaml at mainsoft.com>,
>>>     Philippe Cohen <philc at mainsoft.com>, 
>>> mono-devel-list at lists.ximian.com
>>> Subject: Re: [Mono-dev] Compiling System.Web with CSC
>>> Hello,
>>>> I think it is a bad idea, specially considering that it means that we
>>>> have to write more and debug more code than we otherwise would.
>>>> There is an easy solution that I mentioned before which is that we can
>>>> add support to mcs to generate pdb files instead.
>>>> MCS already uses the API to generate debugging information, the only
>>>> difference is that it consumes a Mono-specific API instead of the
>>>> cross-platform API.
>>>> We did not use the cross-platform API in the past because we did not
>>>> have information on how to use it, but now IronPython has code that
>>>> shows how to use it.
>>> Alternatively to upgrading mcs, you can use csc, and then do:
>>> ildasm /out:output file.dll
>>> sed script
>>> ilasm output.il
>>> Where the sed script would remove the couple of new keywords on ildasm
>>> and replace the 2.x references with 1.x references.
>> _______________________________________________
>> Mono-devel-list mailing list
>> Mono-devel-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-devel-list

More information about the Mono-devel-list mailing list