[Mono-dev] Debugging Busted CIL

Jim Purbrick jimpurbrick at yahoo.co.uk
Tue Oct 4 11:44:54 EDT 2005


> > Looks like I can store a Managed Pointer in a
> > local, but not a field :-(
> 
> Right, storing in a field would have both security
> and performance effects in the GC, so it's not 
> allowed.

OK, to solve that problem it looks as though the best
approach is to make sure the value of the field is
saved when I'm saving the stack and then inject code
which pushes the (new) address of the field when I'm
restoring the stack, which is a faff, but not
impossible.

I think I've found the cause of my current problems
though with peverify 2 (which seems much better than
1.1 BTW). It looks as though the normal code pushes an
LLVector on to the stack while the restore code
unboxes a boxed LLVector which leaves a Managed
Pointer to an LLVector on the stack. Is there an easy
way to go from the pointer to a value?

Thanks for all your help,

Cheers,

Jim.


		
___________________________________________________________ 
How much free photo storage do you get? Store your holiday 
snaps for FREE with Yahoo! Photos http://uk.photos.yahoo.com



More information about the Mono-devel-list mailing list