[Mono-dev] the inmortal debugger...
dignor_sign at yahoo.es
Mon Sep 11 15:36:46 EDT 2006
--- Miguel de Icaza <miguel at ximian.com> escribió:
> > The last commit in the module "debugger" in the
> > repository is from 7 weeks ago, right?. Version
> > doesn't support spitting out generic instances
> > and locals. Are there any plans for those
> Please file a bug report so we can track this.
Bug reports have a very precise format, and after a
week in the depths of mono and the mono-debugger, I
can put it concisely this way: mono-debugger knows
very little about generics .
If you want an example, take a look at mono-debug.c,
there is a hook that reports the MonoClass'es
initialized by the runtime to the debugger, so the
debugger can know about the runtime offset of fields
and methods. It have a very interesting sentence near
the beggining which is, more or less:
if (klass->generic_class || ...)
return ; // So, do nothing
Another: in the csharp part, (languages/mono), types
are often looked up straight by token (going through
the Cecil mechanisms), which is right if you have a
token for each type, but sadly, that's far from being
correct. There is, luckly, an exception, one relative
to locals and a wonderful function named
GetLocalTypeFromSignature. But this exception is
meaningless anyway for generics because somebody
dismissed the generic MonoClass*, and I guess it's
almost impossible to build correctly the offset
location of fields just from the type information. And
signatures can't be used as a mean of identifying
types because they are not unique (according to the
CLI specification, you can use in many places a
TypeDef or a TypeRef indistinctly, right?).
And if you fix all this (as I already did), you're
left with generic method instantiations!
Ok, qué pongo en el Bug-Report ?
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
More information about the Mono-devel-list