I believe the opcode is valid but perhaps not on the Intel Xeon quad-core that I am developing on. My application uses a closed-source video decoder made by Pegasus ( libpicl20.so ). This decoder supports multiple machine architectures so that at run-time it can select the best performing machine instructions to use. Is there a work-around to tell Valgrind to skip libpicl20.so? libFesVideo Version: 0.0.683 Date: 4/9/2009 10:44AM Adding Connections... Selecting Starboard Camera... Show window SDL_Init... vex x86->IR: unhandled instruction bytes: 0xCB 0x55 0x8B 0xEC ==9455== Process terminating with default action of signal 4 (SIGILL): dumping core ==9455== Illegal opcode at address 0x7B3ABB5 ==9455== at 0x7B3ABB5: ??? ==9455== by 0x407A2BE: picosCallPegasusProc (in /home/esutton/sys/bin/libpicl20.so) ==9455== by 0x4074724: (within /home/esutton/sys/bin/libpicl20.so) ==9455== by 0x407491E: (within /home/esutton/sys/bin/libpicl20.so) ==9455== by 0x40798DD: threadfn (in /home/esutton/sys/bin/libpicl20.so) ==9455== by 0x41C45A: start_thread (in /lib/libpthread-2.5.so) ==9455== by 0x373C4D: clone (in /lib/libc-2.5.so) Thanks for a great tool and thanks in advance for your help, -Ed
Well 0xCB appears to be a FAR RET instruction, which is pretty obscure. It's not new though - it's an ancient artefact of 16 bit days.