[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