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 23.0k 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 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