fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] glib crash


From: Element Green
Subject: Re: [fluid-dev] glib crash
Date: Fri, 23 Aug 2013 10:10:21 -0600

Sounds like you're onto something there.  I was not aware of VEX-prefixed AVX instructions.  I thought it seemed a little fishy that the LDS instruction would be used in that disassembly dump and also that it appeared that the actual instruction was 8 bytes long from your successful single stepping of the code.  From reading the Wikipedia article on the subject, it definitely sounds like what you are experiencing.  If I understood what I read correctly, 32-bit versus 64-bit mode can have an effect on which instructions are valid, regardless of whether the processor supports 64 bit or not.  So if you're kernel is running in 32 bit mode, then certain AVX instructions will be interpreted differently than if the kernel is running 64 bit.

http://en.wikipedia.org/wiki/VEX_prefix

Best regards,

Element


On Fri, Aug 23, 2013 at 4:57 AM, address@hidden <address@hidden> wrote:
well,
I installed glib as --universal, meaning that it contains both 32 bits and 64 bits binaries. And actually, I removed the 64 bit binary (using the lipo function), because Director is a 32 bits application and all Xtras (plugins) are also. So we are really running in 32 bit here. Even on MacOSX10.8, which is a 64 bits kernel, but which can run 32 bits applications.

And, this instruction does _not_ crash on my MacOSX10.8 machine, and _does_ crash on another MacOSX10.8 machine.

I found another possibility : AVX. I found on the net (http://stackoverflow.com/questions/16389207/llvm-jit-tutorial-code-crashes-with-simple-parameterized-function-why) a similar SIGILL LDS, which was actually caused by an VEX-prefixed AVX instruction, which neither the processor nor the disassembler knew about, and interpreted as an LDS. And AVX is available on my machine, and not on the two crashing machines…

I'm investigating this now. Trying to compile glib without AVX.

Le 23 août 2013 à 00:59, Element Green <address@hidden> a écrit :

>From what I can see, that instruction is indeed an LDS instruction, which from what I read is invalid when in 64 bit mode.  It sounds like Mac OSX can be run in either 32 bit or 64 bit mode, so perhaps that is the difference between working systems and non-working systems?  I didn't bother decoding the instruction further than seeing that it was an LDS instruction.  If that is indeed what is happening, then some sort of compiler setting resulted in that instruction.  Probably need to make sure the proper compiler switches are being used for the intended architectures.



_______________________________________________
fluid-dev mailing list
address@hidden
https://lists.nongnu.org/mailman/listinfo/fluid-dev



reply via email to

[Prev in Thread] Current Thread [Next in Thread]