[Mono-dev] VisualwebGUI 6.0.4, Framework 2.0 working with Linux + Mono.
tsalvagno at gmail.com
Sun Aug 10 01:54:35 EDT 2008
I just remembered that Stephanus already posted this error at VWG forum and
they replied that this issue is konwn and will be fixed for version 6.2
(see, http://support.visualwebgui.com/issue/ViewIssue.aspx?id=2318) . This
probably means that the current unstable version 6.1.2 will become 6.2 when
it become stable or the '6.2' is just a typo error :).
linuxfreak at uy wrote:
> Well I have something here, with the stack trace you posted the last time
> I disassembled (a few days ago) 'Gizmox.WebGUI.Server' (version 6.0.4, 6.1
> and 6.1.2 for FRAMEWORK 2.0) and looked what the method (is a property
> actually) was all about and all I could see it's a simple property which
> returns a Boolean nothing more so I discarded it as the source of the
> exception you are experiencing. Now looking your IL code it tooked me a
> few seconds to realize that your version of "get_ChacheOK" is not like any
> I saw before so I went directly to disassemble the 'Gizmox.WebGUI.Server'
> for FRAMEWORK 3.5, look for 'get_CacheOk' and bingo. Now I was at the
> right place to start and I don't know if you already mentioned it but I
> didn't know that you were using VWG for framework 3.5.
> I'm quite sure that there's something suspicious at the 'get_CacheOK'
> (assembly for framework 3.5) , first it's full of 'nop' operations (more
> likely operation from a patched assembly that from a compiled/built
> assembly) then it's also full of 'br.s' operations and finally at least
> one of the 'brfalse.s' I think could throw an exception (the famous
> invalid IL code exception, IL_0006: brfalse.s IL_000b).
> #get_CacheOK (IL code for the other versions of VWG for framework 2.0)
> # Only one operation here, returning a bool variable value.
> .method /*06000016*/ assembly hidebysig specialname static
> bool get_CacheOK() cil managed
> // SIG: 00 00 02
> // Method begins at RVA 0x22ec
> // Code size 6 (0x6)
> .maxstack 8
> IL_0000: /* 7E | (04)00000E */ ldsfld bool
> Gizmox.WebGUI.Server.Cache/*02000006*/::'60AAA' /* 0400000E */
> IL_0005: /* 2A | */ ret
> } // end of method Cache::get_CacheOK
> Notice that the the last two operations from the IL code for the
> 'get_CacheOK' of the assembly for framework 3.5 (what Stephanus sent) are
> the same operations I just put in here which are the RETURN of a boolean
> value from an existing BOOLEAN variable therefore the other operations
> seems to be void and they do nothing meaningful.
> If you want you can use (in Windows) besides 'ildasm' or 'IDA', an
> interesting application that maybe you already know called 'Reflector'
> (sort of decompiler which uses reflection, etc.) and if you try to view
> the 'get_CacheOK' property it throws an exception and that for me is the
> verification that I needed to affirm that that code is bugged or
> I will report this to the VWG guys to know what they can tell us.
> Stephanus van Staden wrote:
>> 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
>> IL_0001: nop
>> IL_0002: ldc.i4.1
>> IL_0003: br.s IL_0012
>> IL_0005: nop
>> IL_0006: brfalse.s IL_000b
>> IL_0008: nop
>> IL_0009: br.s IL_0018
>> 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
>> 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'
>> IL_001e: ret
>> } // end of method Cache::get_CacheOK
View this message in context: http://www.nabble.com/VisualwebGUI-6.0.4%2C-Framework-2.0-working-with-Linux-%2B-Mono.-tp18816346p18910993.html
Sent from the Mono - Dev mailing list archive at Nabble.com.
More information about the Mono-devel-list