So I merged this 
https://github.com/atykhyy/cecil/commit/a871befb703d41ddf8ed3618300ed68d3da50f9f
 
with master and got this https://github.com/SimonCropp/cecil

And I can now view the variable in the iterator block so it looks 
like atykhyy had the fix right.

Of course it is a significant number of changes 
https://github.com/SimonCropp/cecil/commit/799a1e54cd521a262e73de6e17828ce4a252b9b0

And I have no idea if it broke anything else :)


On Monday, 5 November 2012 06:34:17 UTC+11, Simon wrote:
>
> Looks like there are a couple of ways forward in that issue.
>
> Are you not confident in the quality of the patches?
>
> On 05/11/2012, at 1:11 AM, Jb Evain <[email protected]> wrote:
>
> I'am not surprised.
>
> We're already messing with iterators, see 
> https://github.com/jbevain/cecil/issues/4
>
> It's no surprise we have an issue with async methods.
>
> Jb
>
>
> On Sun, Nov 4, 2012 at 10:06 AM, Simon <[email protected]> wrote:
>
>> JB
>>
>> https://www.dropbox.com/s/1rfr13g7qjmfm4w/CecilDebugIssue.zip
>>
>> So someone raised this bug with NPW
>> https://github.com/SimonCropp/NotifyPropertyWeaver/issues/15
>>
>> And it turns out it effects the other MSBuild project where I use cecil.
>>
>> It manifests as such...
>>
>> Given this
>>
>> [TestFixture]
>> public class AsyncTest
>> {
>>     [Test]
>>     public void TestAsynch()
>>     {
>>         AsyncDebuggerTest();
>>     }
>>
>>     public async void AsyncDebuggerTest()
>>     {
>>         var test = await getTestString();
>>         //set breakpoint on next line and look at 'test' variable in 
>> debugger
>>         var test2 = test + test;
>>     }
>>
>>     private async Task<string> getTestString()
>>     {
>>         return "test";
>>     }
>> }
>>
>> you cant view the "test" variable in AsyncDebuggerTest
>>
>> if I remove the async code I can view "test"
>>
>> [TestFixture]
>> public class NonAsyncTest
>> {
>>     [Test]
>>     public void TestAsynch()
>>     {
>>         AsyncDebuggerTest();
>>     }
>>
>>     public void AsyncDebuggerTest()
>>     {
>>         var test = getTestString();
>>         //set breakpoint on next line and look at 'test' variable in 
>> debugger
>>         var test2 = test + test;
>>     }
>>
>>     private string getTestString()
>>     {
>>         return "test";
>>     }
>> }
>>
>> See CecilDebugIssue project in the attachment for the above two classes
>>
>>
>> If I remove cecil from the equation I can view the "test" variable in the 
>> async case. See WithNoCecil project in attachment
>>
>> I have included the bin+obj dir in the attachment so you can have a look 
>> at the pdb and dlls
>>
>> my module reader code is here
>>
>> https://github.com/SimonCropp/Fody/blob/master/FodyIsolated/ModuleReader.cs
>> and my module write code is here
>>
>> https://github.com/SimonCropp/Fody/blob/master/FodyIsolated/ModuleWriter.cs
>>
>> is this enough to go on?  I know it is a complicated repro but I am 
>> hoping it is enough for you to go on.
>>
>> Regards 
>> Simon
>>
>> -- 
>> --
>> mono-cecil
>
>
>  -- 
> --
> mono-cecil
>
>

-- 
--
mono-cecil

Reply via email to