https://bugs.kde.org/show_bug.cgi?id=356138
Bug ID: 356138 Summary: vex amd64->IR unhandled instruction bytes 0x8F 0xEA 0x78 0x10 0xD2 0x6 0x6 0x0 Product: valgrind Version: 3.10 SVN Platform: Ubuntu Packages OS: Linux Status: UNCONFIRMED Severity: major Priority: NOR Component: memcheck Assignee: jsew...@acm.org Reporter: andreas.boer...@w84u.org running my C++ program gives the following output: vex amd64->IR: unhandled instruction bytes: 0x8F 0xEA 0x78 0x10 0xD2 0x6 0x6 0x0 vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0 vex amd64->IR: VEX=0 VEX.L=0 VEX.nVVVV=0x0 ESC=NONE vex amd64->IR: PFX.66=0 PFX.F2=0 PFX.F3=0 ==18602== valgrind: Unrecognised instruction at address 0x527333. ==18602== at 0x527333: COMPANY_NAMESPACE::DataPointerList2::PrepareRealloc(COMPANY_NAMESPACE::Operation&) (DataPointerList2.cpp:280) ==18602== by 0x5289E4: COMPANY_NAMESPACE::DataPointerList2::DirtyBufferInsert(unsigned int, unsigned int const&) (DataPointerList2.cpp:668) ==18602== by 0x53D53E: (anonymous namespace)::DataPointerTestCase_DirtyBuffers64_Test::TestBody() (DataPointerListTest.cpp:687) ==18602== by 0x50ED12: void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (in /mnt/data/git/dataStruct/config/clang/bin/main) ==18602== by 0x503BC0: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2438) ==18602== by 0x4F51BA: testing::Test::Run() (gtest.cc:2474) ==18602== by 0x4F5C8D: testing::TestInfo::Run() (gtest.cc:2656) ==18602== by 0x4F63A6: testing::TestCase::Run() (gtest.cc:2774) ==18602== by 0x4FD76A: testing::internal::UnitTestImpl::RunAllTests() (gtest.cc:4648) ==18602== by 0x50BB72: bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (in /mnt/data/git/dataStruct/config/clang/bin/main) ==18602== by 0x505BF0: bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2438) ==18602== by 0x4FD424: testing::UnitTest::Run() (gtest.cc:4256) ==18602== Your program just tried to execute an instruction that Valgrind ==18602== did not recognise. There are two possible reasons for this. ==18602== 1. Your program has a bug and erroneously jumped to a non-code ==18602== location. If you are running Memcheck and you just saw a ==18602== warning about a bad jump, it's probably your program's fault. ==18602== 2. The instruction is legitimate but Valgrind doesn't handle it, ==18602== i.e. it's Valgrind's fault. If you think this is the case or ==18602== you are not sure, please let us know and we'll try to fix it. ==18602== Either way, Valgrind will now raise a SIGILL signal which will ==18602== probably kill your program. ==18602== ==18602== Process terminating with default action of signal 4 (SIGILL) ==18602== Illegal opcode at address 0x527333 ==18602== at 0x527333: COMPANY_NAMESPACE::DataPointerList2::PrepareRealloc(COMPANY_NAMESPACE::Operation&) (DataPointerList2.cpp:280) ==18602== by 0x5289E4: COMPANY_NAMESPACE::DataPointerList2::DirtyBufferInsert(unsigned int, unsigned int const&) (DataPointerList2.cpp:668) ==18602== by 0x53D53E: (anonymous namespace)::DataPointerTestCase_DirtyBuffers64_Test::TestBody() (DataPointerListTest.cpp:687) ==18602== by 0x50ED12: void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (in /mnt/data/git/dataStruct/config/clang/bin/main) ==18602== by 0x503BC0: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2438) ==18602== by 0x4F51BA: testing::Test::Run() (gtest.cc:2474) ==18602== by 0x4F5C8D: testing::TestInfo::Run() (gtest.cc:2656) ==18602== by 0x4F63A6: testing::TestCase::Run() (gtest.cc:2774) ==18602== by 0x4FD76A: testing::internal::UnitTestImpl::RunAllTests() (gtest.cc:4648) ==18602== by 0x50BB72: bool testing::internal::HandleSehExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (in /mnt/data/git/dataStruct/config/clang/bin/main) ==18602== by 0x505BF0: bool testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl, bool>(testing::internal::UnitTestImpl*, bool (testing::internal::UnitTestImpl::*)(), char const*) (gtest.cc:2438) ==18602== by 0x4FD424: testing::UnitTest::Run() (gtest.cc:4256) ==18602== ==18602== HEAP SUMMARY: ==18602== in use at exit: 56,795 bytes in 511 blocks ==18602== total heap usage: 1,304 allocs, 793 frees, 173,238 bytes allocated ==18602== ==18602== LEAK SUMMARY: ==18602== definitely lost: 0 bytes in 0 blocks ==18602== indirectly lost: 0 bytes in 0 blocks ==18602== possibly lost: 0 bytes in 0 blocks ==18602== still reachable: 56,795 bytes in 511 blocks ==18602== of which reachable via heuristic: ==18602== stdstring : 15,076 bytes in 313 blocks ==18602== suppressed: 0 bytes in 0 blocks ==18602== Rerun with --leak-check=full to see details of leaked memory ==18602== ==18602== For counts of detected and suppressed errors, rerun with: -v ==18602== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) zsh: illegal hardware instruction (core dumped) valgrind bin/main -gt Reproducible: Always Steps to Reproduce: compile program with clang C++ compiler Run the C++ compiled program: valgrind bin/main -gt (Unfortunately I can't provide a simple stand alone soure code) Actual Results: Error message shown above Expected Results: No error output; it works when compiled with g++ I also installed the latest version of valgrind, -3.11.0 the output is from this version. The error shoes only if I compile with clang: > clang++ --version Ubuntu clang version 3.6.0-2ubuntu1~trusty1 (tags/RELEASE_360/final) (based on LLVM 3.6.0) Target: x86_64-pc-linux-gnu Thread model: posix Error does not show if I compile with g++ > g++ --version g++ (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4 My processor is cpu family : 21 model : 2 model name : AMD FX(tm)-8350 Eight-Core Processor > lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04.3 LTS Release: 14.04 Codename: trusty uname -a Linux ac8 3.13.0-54-generic #91-Ubuntu SMP Tue May 26 19:15:08 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux -- You are receiving this mail because: You are watching all bug changes.