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
