[Mono-dev] Compiling System.Web with CSC

Kornél Pál kornelpal at hotmail.com
Tue Oct 11 13:49:22 EDT 2005


Hi,

I think the only solution to read PDB files is to use DIA. If you do so
there is no difference between .NET 1.1. a .NET 2.0 PDB files as you can
read the using the same interfaces methods. In other words your DIA base
code should work with .NET 2.0 PDB files as well.

Or do you use some other solution to read PDB files?

Kornél

----- Original Message -----
From: "Eyal Alaluf" <eyala at mainsoft.com>
To: "Kornél Pál" <kornelpal at hotmail.com>
Cc: <martin at ximian.com>; "Noam Lampert" <noaml at mainsoft.com>; "Miguel de
Icaza" <miguel at ximian.com>; "Philippe Cohen" <philc at mainsoft.com>;
<mono-devel-list at lists.ximian.com>
Sent: Tuesday, October 11, 2005 7:34 PM
Subject: Re: [Mono-dev] Compiling System.Web with CSC


> 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.
>
> Eyal.
>
> 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
>>>
>>
>>


--------------------------------------------------------------------------------


> _______________________________________________
> 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