Qt 5.10 with Creator 4.5 Valgrind error?



  • I've upgraded to Qt 5.10 with Qt creator 4.5.
    Created an dummy project

    #include <QApplication>
    int main(int argc, char *argv[])
    {
        QApplication a(argc, argv);
        return 0;
    }
    

    When trying to profile/run memcheck, valgrind fails with the following message -

    vex amd64->IR: unhandled instruction bytes: 0xF 0xC7 0xF2 0xB9 0x1 0x0 0x0 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=0F
    vex amd64->IR:   PFX.66=0 PFX.F2=0 PFX.F3=0
    ==2234== valgrind: Unrecognised instruction at address 0x54feef0.
    ==2234==    at 0x54FEEF0: ??? (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x54FFA58: ??? (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x5500458: QRandomGenerator::_fillRange(void*, void*) (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x555C59B: ??? (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x555CF66: QHashData::detach_helper(void (*)(QHashData::Node*, void*), void (*)(QHashData::Node*), int, int) (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x5577242: ??? (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x5577644: QRegExp::QRegExp(QString const&, Qt::CaseSensitivity, QRegExp::PatternSyntax) (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x56019DB: ??? (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x560247B: QDirIterator::QDirIterator(QString const&, QStringList const&, QFlags<QDir::Filter>, QFlags<QDirIterator::IteratorFlag>) (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x55FBB98: QDir::entryList(QStringList const&, QFlags<QDir::Filter>, QFlags<QDir::SortFlag>) const (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x55FC1DA: QDir::entryList(QFlags<QDir::Filter>, QFlags<QDir::SortFlag>) const (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x56CE761: QFactoryLoader::update() (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234== Your program just tried to execute an instruction that Valgrind
    ==2234== did not recognise.  There are two possible reasons for this.
    ==2234== 1. Your program has a bug and erroneously jumped to a non-code
    ==2234==    location.  If you are running Memcheck and you just saw a
    ==2234==    warning about a bad jump, it's probably your program's fault.
    ==2234== 2. The instruction is legitimate but Valgrind doesn't handle it,
    ==2234==    i.e. it's Valgrind's fault.  If you think this is the case or
    ==2234==    you are not sure, please let us know and we'll try to fix it.
    ==2234== Either way, Valgrind will now raise a SIGILL signal which will
    ==2234== probably kill your program.
    ==2234== 
    ==2234== Process terminating with default action of signal 4 (SIGILL)
    ==2234==  Illegal opcode at address 0x54FEEF0
    ==2234==    at 0x54FEEF0: ??? (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x54FFA58: ??? (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x5500458: QRandomGenerator::_fillRange(void*, void*) (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x555C59B: ??? (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x555CF66: QHashData::detach_helper(void (*)(QHashData::Node*, void*), void (*)(QHashData::Node*), int, int) (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x5577242: ??? (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x5577644: QRegExp::QRegExp(QString const&, Qt::CaseSensitivity, QRegExp::PatternSyntax) (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x56019DB: ??? (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x560247B: QDirIterator::QDirIterator(QString const&, QStringList const&, QFlags<QDir::Filter>, QFlags<QDirIterator::IteratorFlag>) (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x55FBB98: QDir::entryList(QStringList const&, QFlags<QDir::Filter>, QFlags<QDir::SortFlag>) const (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x55FC1DA: QDir::entryList(QFlags<QDir::Filter>, QFlags<QDir::SortFlag>) const (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==    by 0x56CE761: QFactoryLoader::update() (in /home/innereye/Qt5.10.0/5.10.0/gcc_64/lib/libQt5Core.so.5.10.0)
    ==2234==
    

    When deleting the line QApplication a(argc, argv); it works fine.
    With 5.7 and creator 4.2 it worked. I'm using Gcc 7.2 and valgrind-3.11.0, any suggestions?


  • Moderators

    @Jonathan-Levanon Can you check in disassembler what is at 0x56019DB? Does it look like valid assembler? You can post it here.



  • @jsulm said in Qt 5.10 with Creator 4.5 Valgrind error?:

    disassembler

    Thanks, not sure how can I get the disassembler while profiling. Can you guide me?



  • Anybody?


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.