Package: valgrind Version: 1:3.2.3-1 Architecture: amd64 $ cat t.c #include <stdio.h>
int main() { printf("Hello World!\n"); return 0; } I compiled things static for a little more diagnostics, i.e. function names below. Basically same results with a dynamic binary. E.g. "valgrind ls" $ cc -Wall -O2 -g -static t.c -o t $ ./t Hello World! $ valgrind ./t ==19908== Memcheck, a memory error detector. ==19908== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==19908== Using LibVEX rev 1732, a library for dynamic binary translation. ==19908== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==19908== Using valgrind-3.2.3-Debian, a dynamic binary instrumentation framework. ==19908== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==19908== For more details, rerun with: -v ==19908== vex amd64->IR: unhandled instruction bytes: 0x66 0x66 0x66 0x66 ==19908== valgrind: Unrecognised instruction at address 0x451E22. ==19908== Your program just tried to execute an instruction that Valgrind ==19908== did not recognise. There are two possible reasons for this. ==19908== 1. Your program has a bug and erroneously jumped to a non-code ==19908== location. If you are running Memcheck and you just saw a ==19908== warning about a bad jump, it's probably your program's fault. ==19908== 2. The instruction is legitimate but Valgrind doesn't handle it, ==19908== i.e. it's Valgrind's fault. If you think this is the case or ==19908== you are not sure, please let us know and we'll try to fix it. ==19908== Either way, Valgrind will now raise a SIGILL signal which will ==19908== probably kill your program. ==19908== ==19908== Process terminating with default action of signal 4 (SIGILL) ==19908== Illegal opcode at address 0x451E22 ==19908== at 0x451E22: strpbrk (in /p/IM/t) ==19908== by 0x448429: strsep (in /p/IM/t) ==19908== by 0x42CAB0: fillin_rpath (in /p/IM/t) ==19908== by 0x42E8DB: _dl_init_paths (in /p/IM/t) ==19908== by 0x40DFCE: _dl_non_dynamic_init (in /p/IM/t) ==19908== by 0x40E6DA: __libc_init_first (in /p/IM/t) ==19908== by 0x400423: (below main) (in /p/IM/t) ==19908== ==19908== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) ==19908== malloc/free: in use at exit: 0 bytes in 0 blocks. ==19908== malloc/free: 0 allocs, 0 frees, 0 bytes allocated. ==19908== For counts of detected errors, rerun with: -v ==19908== All heap blocks were freed -- no leaks are possible. Illegal instruction -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]