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.

Reply via email to