On Fri, Feb 7, 2014 at 3:28 PM, Adam.Jirasek <adam.jira...@gmail.com> wrote:
> Hello
>
> I have a C program which I routinely test with valgrind.
> The platform is Intel i3 dual core, gcc-4.7.3. and for all my tests
> valgrind did not give any warning when I started my program
>
>
> Now I updated to a new computer
> Intel i7 4th generation, gcc-4.7.3 and when I start valgrind with my
> code I get:
>
> valgrind --tool=memcheck  --trace-children=yes
> --vex-iropt-register-updates=allregs-at-mem-access --leak-check=full
> --leak-resolution=high --show-reachable=yes  --track-origins=yes
> ../../Source/Server_Main.out --port 31000 --input_file
> Definition_File_PDT_Modes  --show
> ==28771== Memcheck, a memory error detector
> ==28771== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
> ==28771== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
> ==28771== Command: ../../Source/Server_Main.out --port 31000
> --input_file Definition_File_PDT_Modes --show
> ==28771==
> vex amd64->IR: unhandled instruction bytes: 0xC4 0xC2 0x79 0xF7 0xC9
> 0x89 0x45 0x80
> vex amd64->IR:   REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=1
> vex amd64->IR:   VEX=1 VEX.L=0 VEX.nVVVV=0x0 ESC=0F38
> vex amd64->IR:   PFX.66=1 PFX.F2=0 PFX.F3=0
> ==28771== valgrind: Unrecognised instruction at address 0x400da4b.
> ==28771==    at 0x400DA4B: _dl_important_hwcaps (in /lib64/ld-2.17.so)
> ==28771==    by 0x4007D8E: _dl_init_paths (in /lib64/ld-2.17.so)
> ==28771==    by 0x4003128: dl_main (in /lib64/ld-2.17.so)
> ==28771==    by 0x40152E7: _dl_sysdep_start (in /lib64/ld-2.17.so)
> ==28771==    by 0x4004EA4: _dl_start (in /lib64/ld-2.17.so)
> ==28771==    by 0x4001647: ??? (in /lib64/ld-2.17.so)
> ==28771==    by 0x5: ???
> ==28771==    by 0x7FF000056: ???
> ==28771==    by 0x7FF000073: ???
> ==28771==    by 0x7FF00007A: ???
> ==28771==    by 0x7FF000080: ???
> ==28771==    by 0x7FF00008D: ???
> ==28771== Your program just tried to execute an instruction that Valgrind
> ==28771== did not recognise.  There are two possible reasons for this.
> ==28771== 1. Your program has a bug and erroneously jumped to a non-code
> ==28771==    location.  If you are running Memcheck and you just saw a
> ==28771==    warning about a bad jump, it's probably your program's fault.
> ==28771== 2. The instruction is legitimate but Valgrind doesn't handle it,
> ==28771==    i.e. it's Valgrind's fault.  If you think this is the case or
> ==28771==    you are not sure, please let us know and we'll try to fix it.
> ==28771== Either way, Valgrind will now raise a SIGILL signal which will
> ==28771== probably kill your program.
> ==28771==
> ==28771== Process terminating with default action of signal 4 (SIGILL)
> ==28771==  Illegal opcode at address 0x400DA4B
> ==28771==    at 0x400DA4B: _dl_important_hwcaps (in /lib64/ld-2.17.so)
> ==28771==    by 0x4007D8E: _dl_init_paths (in /lib64/ld-2.17.so)
> ==28771==    by 0x4003128: dl_main (in /lib64/ld-2.17.so)
> ==28771==    by 0x40152E7: _dl_sysdep_start (in /lib64/ld-2.17.so)
> ==28771==    by 0x4004EA4: _dl_start (in /lib64/ld-2.17.so)
> ==28771==    by 0x4001647: ??? (in /lib64/ld-2.17.so)
> ==28771==    by 0x5: ???
> ==28771==    by 0x7FF000056: ???
> ==28771==    by 0x7FF000073: ???
> ==28771==    by 0x7FF00007A: ???
> ==28771==    by 0x7FF000080: ???
> ==28771==    by 0x7FF00008D: ???
> ==28771==
> ==28771== HEAP SUMMARY:
> ==28771==     in use at exit: 0 bytes in 0 blocks
> ==28771==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
> ==28771==
> ==28771== All heap blocks were freed -- no leaks are possible
> ==28771==
> ==28771== For counts of detected and suppressed errors, rerun with: -v
> ==28771== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
> Illegal instruction
>
>
>
> Any advice what my be causing such a warning?
>

Yes, you've emitted an instruction that valgrind does not handle.
Searching for the same instruction string on google, I found that
there was already a bug filed for this.

You can try limiting your instruction set when you compile.  I do not
know exactly what instruction this is, but if you can determine that,
you can try to get the compiler not to emit it.

I notice that you're also running valgrind that only has copyright up
to 2012.  Maybe try the latest version?

  Brian

------------------------------------------------------------------------------
Managing the Performance of Cloud-Based Applications
Take advantage of what the Cloud has to offer - Avoid Common Pitfalls.
Read the Whitepaper.
http://pubads.g.doubleclick.net/gampad/clk?id=121051231&iu=/4140/ostg.clktrk
_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to