Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Problem with disassembler and SIGILL signal
Forum Updated to NodeBB v4.3 + New Features

Problem with disassembler and SIGILL signal

Scheduled Pinned Locked Moved Solved General and Desktop
59 Posts 4 Posters 22.3k Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Amaury

    Thank you I was a little disapointed by this function and wasn't able to say if that was correct or not

    mrjjM Offline
    mrjjM Offline
    mrjj
    Lifetime Qt Champion
    wrote on last edited by
    #47

    @Amaury
    Well you can always single step it and see if something happens.

    1 Reply Last reply
    0
    • A Amaury

      Thank you I was a little disapointed by this function and wasn't able to say if that was correct or not

      kshegunovK Offline
      kshegunovK Offline
      kshegunov
      Moderators
      wrote on last edited by
      #48

      @Amaury
      Also you can cut the code that you suspect and see if the problem manifest itself. I wouldn't in principle initialize anything outside of main (like your database) if I can help it, that way I stumble on to less errors in my code, and thus makes for an easier time debugging. Still, my best guess is there some subtle architecture mismatch, so the compiler generates a mostly valid code. However I have no clue how to really test that at present.

      Read and abide by the Qt Code of Conduct

      1 Reply Last reply
      0
      • A Offline
        A Offline
        Amaury
        wrote on last edited by Amaury
        #49

        By using step I can't see any bugs so that's not here.

        By the way I'm using the memory check Valgind through QT and when I do a memory check thats starting but I got this message after a few seconds :

        Analyzing memory of /home/pi/Desktop/SmartDevice/SauvegardeRASPI/New/build-SmartDevice_QT_V11-Desktop-Debug/SmartDevice_QT_V11
            <frame>
              <ip>0x485F6F0</ip>
              <obj>/usr/lib/arm-linux-gnueabihf/libarmmem.so</obj>
            </frame>
          </stack>
        Analyzing finished.
        ** Unknown error **
        

        I followed the steps here :
        http://doc.qt.io/qtcreator/creator-valgrind-overview.html
        http://doc.qt.io/qtcreator/creator-analyzer.html

        1 Reply Last reply
        0
        • A Offline
          A Offline
          Amaury
          wrote on last edited by
          #50

          @kshegunov
          If I don't declare it there where could I do it ? As said before that's not a code that I did myself and I don't really understand the way that it works (how the "path" is used thorugh the different pages ...

          kshegunovK 1 Reply Last reply
          0
          • A Amaury

            @kshegunov
            If I don't declare it there where could I do it ? As said before that's not a code that I did myself and I don't really understand the way that it works (how the "path" is used thorugh the different pages ...

            kshegunovK Offline
            kshegunovK Offline
            kshegunov
            Moderators
            wrote on last edited by
            #51

            @Amaury said in Problem with disassembler and SIGILL signal:

            If I don't declare it there where could I do it

            From the looks of it you can safely put the db initialization in main (after you've created the application object). As for the string, it's okay to leave it as a global.

            Read and abide by the Qt Code of Conduct

            1 Reply Last reply
            0
            • A Offline
              A Offline
              Amaury
              wrote on last edited by Amaury
              #52

              @kshegunov

              I tried like that but that doesn't work got a qualified-id in declaration before '(' token error

              static const QString path = "localhost";
              
              int main(int argc, char *argv[])
              {
                  QApplication a(argc, argv);
                  DataBase MemTampon::Db(path);
              .
              .
              .
              }
              

              Even with the string inside the main ...

              kshegunovK 1 Reply Last reply
              0
              • A Amaury

                @kshegunov

                I tried like that but that doesn't work got a qualified-id in declaration before '(' token error

                static const QString path = "localhost";
                
                int main(int argc, char *argv[])
                {
                    QApplication a(argc, argv);
                    DataBase MemTampon::Db(path);
                .
                .
                .
                }
                

                Even with the string inside the main ...

                kshegunovK Offline
                kshegunovK Offline
                kshegunov
                Moderators
                wrote on last edited by
                #53

                It should be:

                DataBase Db(path);
                

                You're not initializing a static anymore.

                Read and abide by the Qt Code of Conduct

                1 Reply Last reply
                0
                • A Offline
                  A Offline
                  Amaury
                  wrote on last edited by Amaury
                  #54

                  The problem is if I don't use a static I can't do the calls for my other functions in my Database class..

                  const QString path = "localhost";
                  
                  int main(int argc, char *argv[])
                  {
                  
                      QApplication a(argc, argv);
                  
                  
                      QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
                      QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
                  
                      QTranslator *qtTranslator = new QTranslator;
                          qtTranslator->load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
                          a.installTranslator(qtTranslator);
                  
                          DataBase Db(path);
                          DataBase::Db.aff_Temperature();
                          DataBase::Db.aff_Humidite();
                          DataBase::Db.aff_Puissance();
                          DataBase::Db.aff_Nom_SD();
                  
                      MainWindow w;
                      w.show();
                  
                  
                      return a.exec();
                  }
                  

                  (By the way I've delete the MemTampon that I agree was useless ... )

                  EDIT : My bad I'm dumb I think ^^ for the main it's alright just had to cut out the "DataBase::"

                  But I'm doing reference to the "Db" inside another page but the call doesn't work...

                   if (Db.isOpen())
                      {
                  
                          Temp  = Db.aff_Temperature();
                          Humid  = Db.aff_Humidite();
                          Puiss  = Db.aff_Puissance();
                          Nom = Db.aff_Nom_SD();
                          Axe_X = Db.aff_AxeX();
                          Axe_Y = Db.aff_AxeY();
                          Axe_Z = Db.aff_AxeZ();
                  
                  
                  kshegunovK 1 Reply Last reply
                  0
                  • A Amaury

                    The problem is if I don't use a static I can't do the calls for my other functions in my Database class..

                    const QString path = "localhost";
                    
                    int main(int argc, char *argv[])
                    {
                    
                        QApplication a(argc, argv);
                    
                    
                        QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
                        QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
                    
                        QTranslator *qtTranslator = new QTranslator;
                            qtTranslator->load("qt_" + QLocale::system().name(), QLibraryInfo::location(QLibraryInfo::TranslationsPath));
                            a.installTranslator(qtTranslator);
                    
                            DataBase Db(path);
                            DataBase::Db.aff_Temperature();
                            DataBase::Db.aff_Humidite();
                            DataBase::Db.aff_Puissance();
                            DataBase::Db.aff_Nom_SD();
                    
                        MainWindow w;
                        w.show();
                    
                    
                        return a.exec();
                    }
                    

                    (By the way I've delete the MemTampon that I agree was useless ... )

                    EDIT : My bad I'm dumb I think ^^ for the main it's alright just had to cut out the "DataBase::"

                    But I'm doing reference to the "Db" inside another page but the call doesn't work...

                     if (Db.isOpen())
                        {
                    
                            Temp  = Db.aff_Temperature();
                            Humid  = Db.aff_Humidite();
                            Puiss  = Db.aff_Puissance();
                            Nom = Db.aff_Nom_SD();
                            Axe_X = Db.aff_AxeX();
                            Axe_Y = Db.aff_AxeY();
                            Axe_Z = Db.aff_AxeZ();
                    
                    
                    kshegunovK Offline
                    kshegunovK Offline
                    kshegunov
                    Moderators
                    wrote on last edited by kshegunov
                    #55

                    @Amaury said in Problem with disassembler and SIGILL signal:

                    if I don't use a static I can't do the calls for my other functions in my Database class..

                    Why not, you can always get the opened database (it's default named) by calling QSqlDatabase db = QSqlDatabase::database(). The QSqlDatabase class already keeps track of the opened connections for you.

                    Read and abide by the Qt Code of Conduct

                    1 Reply Last reply
                    1
                    • A Offline
                      A Offline
                      Amaury
                      wrote on last edited by Amaury
                      #56

                      So what you mean is that for now my function Database Db(path) is just to specify if the connection is opened or not ?

                      kshegunovK 1 Reply Last reply
                      0
                      • A Amaury

                        So what you mean is that for now my function Database Db(path) is just to specify if the connection is opened or not ?

                        kshegunovK Offline
                        kshegunovK Offline
                        kshegunov
                        Moderators
                        wrote on last edited by
                        #57

                        @Amaury
                        Eh, yes I suppose you could say that, currently in the constructor of your object you open the database:

                        db = QSqlDatabase::addDatabase("QMYSQL");
                        db.setHostName("localhost");
                        // ...
                        

                        so it serves as database initialization. You can do that in main() too, but that's another point. After the constructor's run, you can get the opened database the way I mentioned in my previous post. In principle it's not really needed to have a "database manager" with Qt, because the QSqlDatabase class already keeps track of the connections, as mentioned. You can look up the two functions QSqlDatabase::addDatabase and QSqlDatabase::database in the docs and I think it'll become clear from the examples there.

                        Read and abide by the Qt Code of Conduct

                        1 Reply Last reply
                        1
                        • A Offline
                          A Offline
                          Amaury
                          wrote on last edited by
                          #58

                          Alright I'm going to check and change some things to see if that deletes the Sigill signal (hope so) I come back to give you feedback.

                          Thanks !

                          1 Reply Last reply
                          0
                          • A Offline
                            A Offline
                            Amaury
                            wrote on last edited by
                            #59

                            Hi there ,

                            I'm back again for some feedback , I changed the way I use my Database, I'm still connecting the same way, But all my functions that were in my class get swith into the only page that need those instructions .
                            That Way I Just connect through my databse page and just make a Signal Slot use when I need it.

                            That said , my problem isn't solve for now I though maybe it was the Databse but seems not , maybe it's my refresh timer for my UI that creates crashes , anyway I'm still triying to find the problem..

                            If anyone could give me a clue for Valgrind to work , it's crashing a few seconds after starting the analysis and I just have the message that I post earlier.

                            That's a big post thank's for help and if I can't get in touch happy Christmas holidays.

                            1 Reply Last reply
                            0

                            • Login

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • Users
                            • Groups
                            • Search
                            • Get Qt Extensions
                            • Unsolved