You can clone with
HTTPS or Subversion.
update cecil rev.
We cannot fully update cecil to the latest master which seems to break
some existing code, so use specific branch so far.
Hey @atsushieno, do you know what breaks?
@jbevain, it is somewhat explained at https://bugzilla.xamarin.com/show_bug.cgi?id=11270 (but since it is not public code I can't fully explain it...)
@atsushieno this looks identical to https://bugzilla.xamarin.com/show_bug.cgi?id=11284 (private) and, if it's the case, is not a bug in Cecil*. You cannot assume that saving an assembly several times will give you the same metadata tokens each time, so you need to save (and reload) the debugging symbols each time.
@spouliot that bug itself is not the issue I mentioned as "breakage". And as I explained a bit more in the referenced cecil commit, our runtime has exact equivalent code for reading debugger symbols, so I believe that fix is reasonable enough.
@atsushieno you mean fc76b93e3e0064b2d751796878f9cbe88df1d5f4 ? (like the gist). That would hide the issue I had (which looks identical to your bug report) for some cases - but it's not a fix.
What happens is that the same tokens (IL and mdb) do not point to the same code, see comments #5 and #8 on my bug report. Ignoring such cases will only bring other issues later (inside the debugger or other similar exceptions).
If you guys want some help with private code or discuss this I can certainly sign an NDA and give you a hand.
While the bug @spouliot mentions is almost unrelated - we are aware of the problem (even the fc76b93 message tells so). The equivalent fix to 11284 (private) for 11270 didn't really work and it's not our option (at least for me) to spend a lot of time to investigate and fix it.
As I mentioned on the commit, the mono runtime has the equivalent safe guard. So if you still insist that it must not be done, it should be also done against the runtime code too.
@jbevain thanks for the offer, I can suggest that to the company if we get really stuck at the issue. And of course feel free to bring the fix to master if you find it better in the end.
Guys I'm getting back to you on this because I had a similar issue in a different project.
If you had to apply this:
Then it means that the mdb you're reading is not in sync with the .dll, even though their Guid matches.
Yes as I wrote in earlier comments.