Package: valgrind
Version: 1:3.7.0-1
Severity: important

  Hi,

I have a problem while debugging a GCC-compiled program on my Intel Core
i7-2600 (Sandy Bridge) with valgrind. Although the program runs and GDB
does not object as well, when run in valgrind it terminates with the
"unhandled instruction bytes" message (see the attached report), so
valgrind (and callgrind, ...) is currently unusable for me. My
unqualified guess is that there is a problem is with the use of SSE4.2
instructions.

Do you have any advice how to remove this error?

  Regards,
                Ondra


-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.39-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages valgrind depends on:
ii  libc6      2.13-24
ii  libc6-dbg  2.13-24

Versions of packages valgrind recommends:
ii  gdb  7.3-1+b1

Versions of packages valgrind suggests:
pn  alleyoop     0.9.8-1
pn  kcachegrind  <none>
pn  valkyrie     <none>

-- no debconf information
==16585== Memcheck, a memory error detector
==16585== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==16585== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==16585== Command: build/cli/vata
==16585== 
--16585-- Valgrind options:
--16585--    --suppressions=/usr/lib/valgrind/debian-libc6-dbg.supp
--16585--    -v
--16585-- Contents of /proc/version:
--16585--   Linux version 2.6.39-2-amd64 (Debian 2.6.39-3) (b...@decadent.org.uk) (gcc version 4.4.6 (Debian 4.4.6-6) ) #1 SMP Tue Jul 5 02:51:22 UTC 2011
--16585-- Arch and hwcaps: AMD64, amd64-sse3-cx16
--16585-- Page sizes: currently 4096, max supported 4096
--16585-- Valgrind library directory: /usr/lib/valgrind
--16585-- Reading syms from /home/ondra/fit/automata/libvata/build/cli/vata (0x400000)
--16585-- Reading syms from /lib/x86_64-linux-gnu/ld-2.13.so (0x4000000)
--16585--   Considering /lib/x86_64-linux-gnu/ld-2.13.so ..
--16585--   .. CRC mismatch (computed b09c3c99 wanted 92120149)
--16585--   Considering /usr/lib/debug/lib/x86_64-linux-gnu/ld-2.13.so ..
--16585--   .. CRC is valid
--16585-- Reading syms from /usr/lib/valgrind/memcheck-amd64-linux (0x38000000)
--16585--    object doesn't have a symbol table
--16585--    object doesn't have a dynamic symbol table
--16585-- Reading suppressions file: /usr/lib/valgrind/debian-libc6-dbg.supp
--16585-- Reading suppressions file: /usr/lib/valgrind/default.supp
==16585== embedded gdbserver: reading from /tmp/vgdb-pipe-from-vgdb-to-16585-by-ondra-on-???
==16585== embedded gdbserver: writing to   /tmp/vgdb-pipe-to-vgdb-from-16585-by-ondra-on-???
==16585== embedded gdbserver: shared mem   /tmp/vgdb-pipe-shared-mem-vgdb-16585-by-ondra-on-???
==16585== 
==16585== TO CONTROL THIS PROCESS USING vgdb (which you probably
==16585== don't want to do, unless you know exactly what you're doing,
==16585== or are doing some strange experiment):
==16585==   /usr/lib/valgrind/../../bin/vgdb --pid=16585 ...command...
==16585== 
==16585== TO DEBUG THIS PROCESS USING GDB: start GDB like this
==16585==   /path/to/gdb build/cli/vata
==16585== and then give GDB the following command
==16585==   target remote | /usr/lib/valgrind/../../bin/vgdb --pid=16585
==16585== --pid is optional if only one valgrind process is running
==16585== 
--16585-- REDIR: 0x4016610 (strlen) redirected to 0x380438c7 (???)
--16585-- Reading syms from /usr/lib/valgrind/vgpreload_core-amd64-linux.so (0x4022000)
--16585--    object doesn't have a symbol table
--16585-- Reading syms from /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so (0x4024000)
--16585--    object doesn't have a symbol table
--16585-- REDIR: 0x4016480 (index) redirected to 0x4028ba0 (index)
--16585-- REDIR: 0x4016500 (strcmp) redirected to 0x4029b60 (strcmp)
--16585-- Reading syms from /lib/x86_64-linux-gnu/librt-2.13.so (0x4a22000)
--16585--   Considering /lib/x86_64-linux-gnu/librt-2.13.so ..
--16585--   .. CRC mismatch (computed bbd37348 wanted e749fed6)
--16585--   Considering /usr/lib/debug/lib/x86_64-linux-gnu/librt-2.13.so ..
--16585--   .. CRC is valid
--16585-- Reading syms from /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16 (0x4c2a000)
--16585--    object doesn't have a symbol table
--16585-- Reading syms from /lib/x86_64-linux-gnu/libm-2.13.so (0x4f2e000)
--16585--   Considering /lib/x86_64-linux-gnu/libm-2.13.so ..
--16585--   .. CRC mismatch (computed ad83bdcc wanted 99d2d769)
--16585--   Considering /usr/lib/debug/lib/x86_64-linux-gnu/libm-2.13.so ..
--16585--   .. CRC is valid
--16585-- Reading syms from /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x51b0000)
--16585--   Considering /lib/x86_64-linux-gnu/libgcc_s.so.1 ..
--16585--   .. CRC mismatch (computed 654bd393 wanted a622c846)
--16585--    object doesn't have a symbol table
--16585-- Reading syms from /lib/x86_64-linux-gnu/libc-2.13.so (0x53c6000)
--16585--   Considering /lib/x86_64-linux-gnu/libc-2.13.so ..
--16585--   .. CRC mismatch (computed e18f2a73 wanted 6cf85050)
--16585--   Considering /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.13.so ..
--16585--   .. CRC is valid
--16585-- Reading syms from /lib/x86_64-linux-gnu/libpthread-2.13.so (0x574a000)
--16585--   Considering /lib/x86_64-linux-gnu/libpthread-2.13.so ..
--16585--   .. CRC mismatch (computed fa7509f2 wanted cee08a79)
--16585--   Considering /usr/lib/debug/lib/x86_64-linux-gnu/libpthread-2.13.so ..
--16585--   .. CRC is valid
--16585-- REDIR: 0x5446170 (strcasecmp) redirected to 0x402263a (_vgnU_ifunc_wrapper)
--16585-- REDIR: 0x5448430 (strncasecmp) redirected to 0x402263a (_vgnU_ifunc_wrapper)
--16585-- REDIR: 0x54441d0 (__GI_strrchr) redirected to 0x40289c0 (__GI_strrchr)
--16585-- REDIR: 0x54426f0 (__GI_strlen) redirected to 0x4028f00 (__GI_strlen)
--16585-- REDIR: 0x5440c70 (strcmp) redirected to 0x402263a (_vgnU_ifunc_wrapper)
--16585-- REDIR: 0x54d2990 (__strcmp_sse42) redirected to 0x4029aa0 (strcmp)
vex amd64->IR: unhandled instruction bytes: 0xC5 0xFA 0x10 0x5 0x7E 0x70 0xE 0x0
==16585== valgrind: Unrecognised instruction at address 0x672312.
==16585==    at 0x672312: std::_Hashtable<VATA::Util::OrdVector<unsigned long>, std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > >, std::allocator<std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > >, std::_Select1st<std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > >, std::equal_to<VATA::Util::OrdVector<unsigned long> >, boost::hash<VATA::Util::OrdVector<unsigned long> >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, false, false, true>::_Hashtable(unsigned long, boost::hash<VATA::Util::OrdVector<unsigned long> > const&, std::__detail::_Mod_range_hashing const&, std::__detail::_Default_ranged_hash const&, std::equal_to<VATA::Util::OrdVector<unsigned long> > const&, std::_Select1st<std::pair<VATA:!
 :Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > > const&, std::allocator<std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > > const&) (hashtable.h:583)
==16585==    by 0x664090: std::__unordered_map<VATA::Util::OrdVector<unsigned long>, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> >, boost::hash<VATA::Util::OrdVector<unsigned long> >, std::equal_to<VATA::Util::OrdVector<unsigned long> >, std::allocator<std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > >, false>::__unordered_map(unsigned long, boost::hash<VATA::Util::OrdVector<unsigned long> > const&, std::equal_to<VATA::Util::OrdVector<unsigned long> > const&, std::allocator<std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > > const&) (unordered_map.h:74)
==16585==    by 0x65332A: std::unordered_map<VATA::Util::OrdVector<unsigned long>, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> >, boost::hash<VATA::Util::OrdVector<unsigned long> >, std::equal_to<VATA::Util::OrdVector<unsigned long> >, std::allocator<std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > > >::unordered_map(unsigned long, boost::hash<VATA::Util::OrdVector<unsigned long> > const&, std::equal_to<VATA::Util::OrdVector<unsigned long> > const&, std::allocator<std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > > const&) (unordered_map.h:273)
==16585==    by 0x63551B: __static_initialization_and_destruction_0(int, int) (ondriks_mtbdd.hh:510)
==16585==    by 0x635801: _GLOBAL__sub_I_startTime (vata.cc:406)
==16585==    by 0x741D5C: __libc_csu_init (in /home/ondra/fit/automata/libvata/build/cli/vata)
==16585==    by 0x53E4E3F: (below main) (libc-start.c:187)
==16585== Your program just tried to execute an instruction that Valgrind
==16585== did not recognise.  There are two possible reasons for this.
==16585== 1. Your program has a bug and erroneously jumped to a non-code
==16585==    location.  If you are running Memcheck and you just saw a
==16585==    warning about a bad jump, it's probably your program's fault.
==16585== 2. The instruction is legitimate but Valgrind doesn't handle it,
==16585==    i.e. it's Valgrind's fault.  If you think this is the case or
==16585==    you are not sure, please let us know and we'll try to fix it.
==16585== Either way, Valgrind will now raise a SIGILL signal which will
==16585== probably kill your program.
==16585== 
==16585== Process terminating with default action of signal 4 (SIGILL)
==16585==  Illegal opcode at address 0x672312
==16585==    at 0x672312: std::_Hashtable<VATA::Util::OrdVector<unsigned long>, std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > >, std::allocator<std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > >, std::_Select1st<std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > >, std::equal_to<VATA::Util::OrdVector<unsigned long> >, boost::hash<VATA::Util::OrdVector<unsigned long> >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, false, false, true>::_Hashtable(unsigned long, boost::hash<VATA::Util::OrdVector<unsigned long> > const&, std::__detail::_Mod_range_hashing const&, std::__detail::_Default_ranged_hash const&, std::equal_to<VATA::Util::OrdVector<unsigned long> > const&, std::_Select1st<std::pair<VATA:!
 :Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > > const&, std::allocator<std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > > const&) (hashtable.h:583)
==16585==    by 0x664090: std::__unordered_map<VATA::Util::OrdVector<unsigned long>, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> >, boost::hash<VATA::Util::OrdVector<unsigned long> >, std::equal_to<VATA::Util::OrdVector<unsigned long> >, std::allocator<std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > >, false>::__unordered_map(unsigned long, boost::hash<VATA::Util::OrdVector<unsigned long> > const&, std::equal_to<VATA::Util::OrdVector<unsigned long> > const&, std::allocator<std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > > const&) (unordered_map.h:74)
==16585==    by 0x65332A: std::unordered_map<VATA::Util::OrdVector<unsigned long>, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> >, boost::hash<VATA::Util::OrdVector<unsigned long> >, std::equal_to<VATA::Util::OrdVector<unsigned long> >, std::allocator<std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > > >::unordered_map(unsigned long, boost::hash<VATA::Util::OrdVector<unsigned long> > const&, std::equal_to<VATA::Util::OrdVector<unsigned long> > const&, std::allocator<std::pair<VATA::Util::OrdVector<unsigned long> const, VATA::MTBDDPkg::MTBDDNodePtr<VATA::Util::OrdVector<unsigned long> > > > const&) (unordered_map.h:273)
==16585==    by 0x63551B: __static_initialization_and_destruction_0(int, int) (ondriks_mtbdd.hh:510)
==16585==    by 0x635801: _GLOBAL__sub_I_startTime (vata.cc:406)
==16585==    by 0x741D5C: __libc_csu_init (in /home/ondra/fit/automata/libvata/build/cli/vata)
==16585==    by 0x53E4E3F: (below main) (libc-start.c:187)
--16585-- REDIR: 0x543d320 (free) redirected to 0x402794d (free)
==16585== 
==16585== HEAP SUMMARY:
==16585==     in use at exit: 0 bytes in 0 blocks
==16585==   total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==16585== 
==16585== All heap blocks were freed -- no leaks are possible
==16585== 
==16585== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)
--16585-- 
--16585-- used_suppression:      4 dl-hack3-cond-1
==16585== 
==16585== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4)

Reply via email to