Comment 18 for bug 148465

Revision history for this message
In , Kde-3 (kde-3) wrote :

I even get it with an empty executable:

int main ( void )
{
  return 0;
}

$ gcc -static -o prog-test prog.c

$ valgrind ./prog-test
==25513== Memcheck, a memory error detector.
==25513== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==25513== Using LibVEX rev 1732, a library for dynamic binary translation.
==25513== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==25513== Using valgrind-3.2.3-Debian, a dynamic binary instrumentation framework.
==25513== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==25513== For more details, rerun with: -v
==25513==
vex amd64->IR: unhandled instruction bytes: 0x66 0x66 0x66 0x66
==25513== valgrind: Unrecognised instruction at address 0x451C22.
==25513== Your program just tried to execute an instruction that Valgrind
==25513== did not recognise. There are two possible reasons for this.
==25513== 1. Your program has a bug and erroneously jumped to a non-code
==25513== location. If you are running Memcheck and you just saw a
==25513== warning about a bad jump, it's probably your program's fault.
==25513== 2. The instruction is legitimate but Valgrind doesn't handle it,
==25513== i.e. it's Valgrind's fault. If you think this is the case or
==25513== you are not sure, please let us know and we'll try to fix it.
==25513== Either way, Valgrind will now raise a SIGILL signal which will
==25513== probably kill your program.
==25513==
==25513== Process terminating with default action of signal 4 (SIGILL)
==25513== Illegal opcode at address 0x451C22
==25513== at 0x451C22: strpbrk (in /tmp/prog-test)
==25513== by 0x448229: strsep (in /tmp/prog-test)
==25513== by 0x42C8B0: fillin_rpath (in /tmp/prog-test)
==25513== by 0x42E6DB: _dl_init_paths (in /tmp/prog-test)
==25513== by 0x40AFBE: _dl_non_dynamic_init (in /tmp/prog-test)
==25513== by 0x40B6CA: __libc_init_first (in /tmp/prog-test)
==25513== by 0x400403: (below main) (in /tmp/prog-test)
==25513==
==25513== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
==25513== malloc/free: in use at exit: 0 bytes in 0 blocks.
==25513== malloc/free: 0 allocs, 0 frees, 0 bytes allocated.
==25513== For counts of detected errors, rerun with: -v
==25513== All heap blocks were freed -- no leaks are possible.
Illegal instruction

$ valgrind --version
valgrind-3.2.3-Debian

I'll try fresh sources now, see if that helps. Anything else I could try ?