[Mono-dev] VisualwebGUI 6.0.4, Framework 2.0 working with Linux + Mono.

Alejandro Serrano trupill at yahoo.es
Sat Aug 9 14:15:37 EDT 2008

As far as I can see, the method just jumps a lot before doing something
useful, and then it just loads an static field. I can't find a place
where things can go wrong, maybe some static constructor is called
before getting the value of the static field.

I hope it helps

El sáb, 09-08-2008 a las 02:10 -0700, Stephanus van Staden escribió:
> I did some further testing and tried to see if my 64bit issue will go away
> on a another platform and another version of Mono.  I think I must mention
> that this work with Microsoft .Net 2.0
> I'm now trying to find where the problem lies - Mono or WebGUI
> So I tried Opensuse 10.2 (32 bit x86)  - Mono JIT compiler version 2.1 -
> Latest VisualWebGUI 6.1.2
> I now even get the error on 32 bit - the same problem - so I disassemled the
> function that give the problem and it seems like the Mono does not like
> IL_0006 (see below).  I do not have any experience in the IL stuff - but it
> seems like something to do with the way an if/switch statement is compiled
> and then obfuscated  (I'm just guessing...)
> Maybe it is obvious to someone else who knows the IL stuff by heart.
> .method assembly hidebysig specialname static 
>         bool  get_CacheOK() cil managed
> {
>   // Code size       31 (0x1f)
>   .maxstack  8
>   IL_0000:  nop
=> 'nop' mean 'no operation', it does nothing
>   IL_0001:  nop
>   IL_0002:  ldc.i4.1
=> load a 1 into memory
>   IL_0003:  br.s       IL_0012
=> jump to 12
>   IL_0005:  nop
>   IL_0006:  brfalse.s  IL_000b
=> jump if false, but we have a 1, so continue
>   IL_0008:  nop
>   IL_0009:  br.s       IL_0018
=> jump to 18
>   IL_000b:  ldc.i4.1
>   IL_000c:  brfalse.s  IL_0015
>   IL_000e:  br.s       IL_0000
>   IL_0010:  br.s       IL_0014
>   IL_0012:  br.s       IL_0005
=> jump to 5
>   IL_0014:  nop
>   IL_0015:  ldc.i4.0
>   IL_0016:  brtrue.s   IL_0002
>   IL_0018:  nop
>   IL_0019:  ldsfld     bool Gizmox.WebGUI.Server.Cache::'12AA0'
=> do actual work: load a field
>   IL_001e:  ret
=> return the field we just loaded into memory
> } // end of method Cache::get_CacheOK

More information about the Mono-devel-list mailing list