Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Mobile and Embedded
  4. segmentation fault
Forum Update on Tuesday, May 27th 2025

segmentation fault

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
qt 4.8cross-compilingarmv7mqtt
61 Posts 6 Posters 24.7k Views 1 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.
  • M Milav
    12 Oct 2019, 10:31

    Hello,

    I make a qt application for Embedded Custom Board and when i run the Application it gives segmentation fault.

    The application give segmentation fault due to following line.

      mosq->subscribe(mosq->getMID(), topic.data(), 1);
    

    where mosq is define and declare as follow.

    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    private:
        qtmosq* mosq = NULL;
        QStringList subed;
        QString currentTopic;
        Ui::MainWindow *ui;
    --------
    --------
    --------
    };
    

    where qtmosq is define as follow..

    #include "QObject"
    #include "mosquittopp.h"
    
    using namespace mosqpp;
    
    class qtmosq : public QObject, public mosquittopp
    {
        Q_OBJECT
    
    public:
        qtmosq(const char *id = NULL, bool clean_session = true) : mosquittopp (id, clean_session) {MID = 0;}
        ~qtmosq() {}
    
        void on_connect(int result)
        {
            if (!result)
            {
                //subscribe(NULL, "$SYS/#", 2);
                emit connected();
            }
            else
                emit connectEnable();
        }
        void on_publish(int id)
        {
            MID++;
            emit messageSent(true);
        }
        void on_subscribe(int mid, int qos_count, const int *granted_qos)
        {
            if (MID != 0)
                emit subscribed();
            MID++;
        }
    ..........
    ..........
    ..........
    
    signals:
        void connected();
        void messageSent(bool);
        void messageReceived(QString);
        void connectEnable();
        void subscribed();
    };
    

    so what is the reason behind for this fault.

    The same application are successfully run on Host Linux PC.

    I have use same mosquitto library in both the test.

    please help me to sort out this problem.

    I have send the reference link at where i used above program.

    Link :- Ref. Link

    Thank you
    Milav Soni

    J Offline
    J Offline
    JonB
    wrote on 12 Oct 2019, 10:48 last edited by
    #2

    @Milav said in segmentation fault:

    The application give segmentation fault due to following line.
    mosq->subscribe(mosq->getMID(), topic.data(), 1);

    Little information in your post. But likely one of:

    • mosq is nullptr/bad pointer
    • mosq->subscribe() or mosq->getMID() are raising the SEGV
    • topic.data() is raising SEGV

    You're using some external library code here, so who knows what that might do.
    Can't you run under debugger and get more specific traceback for the SEGV?

    M 1 Reply Last reply 12 Oct 2019, 11:24
    0
    • J JonB
      12 Oct 2019, 10:48

      @Milav said in segmentation fault:

      The application give segmentation fault due to following line.
      mosq->subscribe(mosq->getMID(), topic.data(), 1);

      Little information in your post. But likely one of:

      • mosq is nullptr/bad pointer
      • mosq->subscribe() or mosq->getMID() are raising the SEGV
      • topic.data() is raising SEGV

      You're using some external library code here, so who knows what that might do.
      Can't you run under debugger and get more specific traceback for the SEGV?

      M Offline
      M Offline
      Milav
      wrote on 12 Oct 2019, 11:24 last edited by
      #3

      @JonB said in segmentation fault:

      nullptr

      Thank you for your response.

      Debugger is not run, it gives following error.

      The inferior stopped because it received a signal from the Operating System.
      
      Signal name : SIGILL
      Signal meaning : Illegal instruction
      
      

      And i replace NULL value in mosq->getMID() ,
      i replace Topic Name direct instead of topic.data()

      but i face same problem.

      so may be it can be happen by

      1. mosq
      2. mosq->subscribe()

      so, is there any another way to solve this error.

      you tell me mosq is bad pointer, so what is best way to make it good pointer.

      is i used memory allocation in mosq defination?

      please help me to find out this error solution.

      Thank you
      MilaV Soni

      J 1 Reply Last reply 14 Oct 2019, 05:17
      0
      • M Milav
        12 Oct 2019, 11:24

        @JonB said in segmentation fault:

        nullptr

        Thank you for your response.

        Debugger is not run, it gives following error.

        The inferior stopped because it received a signal from the Operating System.
        
        Signal name : SIGILL
        Signal meaning : Illegal instruction
        
        

        And i replace NULL value in mosq->getMID() ,
        i replace Topic Name direct instead of topic.data()

        but i face same problem.

        so may be it can be happen by

        1. mosq
        2. mosq->subscribe()

        so, is there any another way to solve this error.

        you tell me mosq is bad pointer, so what is best way to make it good pointer.

        is i used memory allocation in mosq defination?

        please help me to find out this error solution.

        Thank you
        MilaV Soni

        J Offline
        J Offline
        jsulm
        Lifetime Qt Champion
        wrote on 14 Oct 2019, 05:17 last edited by
        #4

        @Milav said in segmentation fault:

        you tell me mosq is bad pointer, so what is best way to make it good pointer.

        Create an instance and assign the pointer:

        mosq = new qtmosq();
        

        https://forum.qt.io/topic/113070/qt-code-of-conduct

        M 1 Reply Last reply 15 Oct 2019, 04:34
        2
        • J jsulm
          14 Oct 2019, 05:17

          @Milav said in segmentation fault:

          you tell me mosq is bad pointer, so what is best way to make it good pointer.

          Create an instance and assign the pointer:

          mosq = new qtmosq();
          
          M Offline
          M Offline
          Milav
          wrote on 15 Oct 2019, 04:34 last edited by
          #5

          @jsulm

          i tried with above syntax.

          qtmosq* mosq;
           mosq = new qtmosq(id, true);
          

          but still i am face same segmentation fault error.

          can you please give me best solution for the same.

          J 1 Reply Last reply 15 Oct 2019, 04:36
          0
          • M Milav
            15 Oct 2019, 04:34

            @jsulm

            i tried with above syntax.

            qtmosq* mosq;
             mosq = new qtmosq(id, true);
            

            but still i am face same segmentation fault error.

            can you please give me best solution for the same.

            J Offline
            J Offline
            jsulm
            Lifetime Qt Champion
            wrote on 15 Oct 2019, 04:36 last edited by
            #6

            @Milav said in segmentation fault:

            but still i am face same segmentation fault error.

            Yes, because you now create a new local variable called mosq which is completely unrelated to mosq in MainWindow! So, the one in MainWindow remains a NULL pointer.
            Remove

            qtmosq* mosq;
            

            https://forum.qt.io/topic/113070/qt-code-of-conduct

            M 1 Reply Last reply 15 Oct 2019, 04:44
            1
            • J jsulm
              15 Oct 2019, 04:36

              @Milav said in segmentation fault:

              but still i am face same segmentation fault error.

              Yes, because you now create a new local variable called mosq which is completely unrelated to mosq in MainWindow! So, the one in MainWindow remains a NULL pointer.
              Remove

              qtmosq* mosq;
              
              M Offline
              M Offline
              Milav
              wrote on 15 Oct 2019, 04:44 last edited by
              #7

              @jsulm

              But than it give error like

              /home/tdp0009/Teq_Projects/Aug_2019/HMI/Firmware/QT/12_oct_hmi/qt-mosquitto-master/mainwindow.cpp:47: error: 'mosq' was not declared in this scope
              

              Can i declare any another place like mainwindow.h?
              i also tried in mainwindow.h

              like following...

              private:
                  qtmosq* mosq;
                  QStringList subed;
                  QString currentTopic;
                  Ui::MainWindow *ui;
              
              

              but it gives same error.

              J 1 Reply Last reply 15 Oct 2019, 04:46
              0
              • M Milav
                15 Oct 2019, 04:44

                @jsulm

                But than it give error like

                /home/tdp0009/Teq_Projects/Aug_2019/HMI/Firmware/QT/12_oct_hmi/qt-mosquitto-master/mainwindow.cpp:47: error: 'mosq' was not declared in this scope
                

                Can i declare any another place like mainwindow.h?
                i also tried in mainwindow.h

                like following...

                private:
                    qtmosq* mosq;
                    QStringList subed;
                    QString currentTopic;
                    Ui::MainWindow *ui;
                
                

                but it gives same error.

                J Offline
                J Offline
                jsulm
                Lifetime Qt Champion
                wrote on 15 Oct 2019, 04:46 last edited by jsulm
                #8

                @Milav Please show where exactly you're calling

                mosq = new qtmosq();
                

                It must be inside one of the MainWindow methods.

                https://forum.qt.io/topic/113070/qt-code-of-conduct

                M 1 Reply Last reply 15 Oct 2019, 04:53
                0
                • J jsulm
                  15 Oct 2019, 04:46

                  @Milav Please show where exactly you're calling

                  mosq = new qtmosq();
                  

                  It must be inside one of the MainWindow methods.

                  M Offline
                  M Offline
                  Milav
                  wrote on 15 Oct 2019, 04:53 last edited by
                  #9

                  @jsulm

                  i call it in mainwindow.cpp file.

                  here i have send the code snip for that portion.

                  mainwindow.cpp

                  MainWindow::MainWindow(QWidget *parent) :
                      QMainWindow(parent),
                      ui(new Ui::MainWindow)
                  {
                      ui->setupUi(this);
                      ui->send->setDisabled(true);
                      ui->message->setDisabled(true);
                      ui->subscribe->setDisabled(true);
                      ui->topic->setDisabled(true);
                  
                      ui->lineIP->setText(QString("a3jkuztr3frwt4-ats.iot.ap-south-1.amazonaws.com"));
                      ui->linePort->setText(QString("8883"));
                  
                      lib_init();
                  
                      connect (ui->connect, SIGNAL(clicked()), this, SLOT(connectPressed()));
                      connect (ui->send, SIGNAL(clicked()), this, SLOT(sendPressed()));
                      connect (ui->subscribe, SIGNAL(clicked()), this, SLOT(subscribePressed()));
                  }
                  
                  void MainWindow::connectPressed()
                  {
                      QByteArray host = ui->lineIP->text().toLocal8Bit();
                      QByteArray id = ui->lineID->text().toLocal8Bit();
                  
                      int port = 0;
                      port = ui->linePort->text().toInt();
                      if (!port)
                      {
                          ui->linePort->clear();
                          return ;
                      }
                      ui->connect->setDisabled(true);
                  
                  
                      mosq = new qtmosq(id, true);
                      int size = sizeof(*mosq);
                      qDebug() << size;
                      connect (mosq, SIGNAL(connectEnable()), this, SLOT(connectEnabled()));
                      connect (mosq, SIGNAL(subscribed()), this ,SLOT(subscribed()));
                      connect (mosq, SIGNAL(connected()), this, SLOT(connected()));
                      connect (mosq, SIGNAL(messageSent(bool)), this, SLOT(setMessageStatus(bool)));
                      connect (mosq, SIGNAL(messageReceived(QString)), this, SLOT(showMessage(QString)));
                      mosq->connect_async(host.data(), port);
                      mosq->loop_start();
                  
                  }
                  

                  mainwindow.h

                  #include <QMainWindow>
                  #include "qtmosq.h"
                  
                  namespace Ui {
                  class MainWindow;
                  }
                  
                  class MainWindow : public QMainWindow
                  {
                      Q_OBJECT
                  
                  public:
                      explicit MainWindow(QWidget *parent = 0);
                      ~MainWindow();
                  
                  private:
                      qtmosq* mosq;
                      QStringList subed;
                      QString currentTopic;
                      Ui::MainWindow *ui;
                  
                  private slots:
                      void setMessageStatus(bool);
                      void connectPressed();
                      void sendPressed();
                      void connectEnabled();
                      void subscribePressed();
                      void subscribed();
                      void connected();
                      void showMessage(QString);
                  };
                  

                  qtmosq.h

                  #ifndef QTMOSQ_H
                  #define QTMOSQ_H
                  
                  #include "QObject"
                  #include "mosquittopp.h"
                  
                  using namespace mosqpp;
                  
                  class qtmosq : public QObject, public mosquittopp
                  {
                      Q_OBJECT
                  
                  public:
                      qtmosq(const char *id = NULL, bool clean_session = true) : mosquittopp (id, clean_session) {MID = 0;}
                      ~qtmosq() {}
                  
                      void on_connect(int result)
                      {
                          if (!result)
                          {
                              //subscribe(NULL, "$SYS/#", 2);
                              emit connected();
                          }
                          else
                              emit connectEnable();
                      }
                      void on_publish(int id)
                      {
                          MID++;
                          emit messageSent(true);
                      }
                      void on_subscribe(int mid, int qos_count, const int *granted_qos)
                      {
                          if (MID != 0)
                              emit subscribed();
                          MID++;
                      }
                      void on_message(const mosquitto_message *message)
                      {
                          if (message->payloadlen)
                          {
                              QString s(message->topic);
                              s += '>';
                              s += (char*) message->payload;
                              emit messageReceived(s);
                          }
                      }
                  
                      int* getMID() {return &MID;}
                  
                  private:
                      int MID;
                  
                  signals:
                      void connected();
                      void messageSent(bool);
                      void messageReceived(QString);
                      void connectEnable();
                      void subscribed();
                  };
                  
                  #endif // QTMOSQ_H
                  
                  

                  here above i send the code for the same.

                  if you get more please tell me.

                  J 1 Reply Last reply 15 Oct 2019, 05:00
                  0
                  • M Milav
                    15 Oct 2019, 04:53

                    @jsulm

                    i call it in mainwindow.cpp file.

                    here i have send the code snip for that portion.

                    mainwindow.cpp

                    MainWindow::MainWindow(QWidget *parent) :
                        QMainWindow(parent),
                        ui(new Ui::MainWindow)
                    {
                        ui->setupUi(this);
                        ui->send->setDisabled(true);
                        ui->message->setDisabled(true);
                        ui->subscribe->setDisabled(true);
                        ui->topic->setDisabled(true);
                    
                        ui->lineIP->setText(QString("a3jkuztr3frwt4-ats.iot.ap-south-1.amazonaws.com"));
                        ui->linePort->setText(QString("8883"));
                    
                        lib_init();
                    
                        connect (ui->connect, SIGNAL(clicked()), this, SLOT(connectPressed()));
                        connect (ui->send, SIGNAL(clicked()), this, SLOT(sendPressed()));
                        connect (ui->subscribe, SIGNAL(clicked()), this, SLOT(subscribePressed()));
                    }
                    
                    void MainWindow::connectPressed()
                    {
                        QByteArray host = ui->lineIP->text().toLocal8Bit();
                        QByteArray id = ui->lineID->text().toLocal8Bit();
                    
                        int port = 0;
                        port = ui->linePort->text().toInt();
                        if (!port)
                        {
                            ui->linePort->clear();
                            return ;
                        }
                        ui->connect->setDisabled(true);
                    
                    
                        mosq = new qtmosq(id, true);
                        int size = sizeof(*mosq);
                        qDebug() << size;
                        connect (mosq, SIGNAL(connectEnable()), this, SLOT(connectEnabled()));
                        connect (mosq, SIGNAL(subscribed()), this ,SLOT(subscribed()));
                        connect (mosq, SIGNAL(connected()), this, SLOT(connected()));
                        connect (mosq, SIGNAL(messageSent(bool)), this, SLOT(setMessageStatus(bool)));
                        connect (mosq, SIGNAL(messageReceived(QString)), this, SLOT(showMessage(QString)));
                        mosq->connect_async(host.data(), port);
                        mosq->loop_start();
                    
                    }
                    

                    mainwindow.h

                    #include <QMainWindow>
                    #include "qtmosq.h"
                    
                    namespace Ui {
                    class MainWindow;
                    }
                    
                    class MainWindow : public QMainWindow
                    {
                        Q_OBJECT
                    
                    public:
                        explicit MainWindow(QWidget *parent = 0);
                        ~MainWindow();
                    
                    private:
                        qtmosq* mosq;
                        QStringList subed;
                        QString currentTopic;
                        Ui::MainWindow *ui;
                    
                    private slots:
                        void setMessageStatus(bool);
                        void connectPressed();
                        void sendPressed();
                        void connectEnabled();
                        void subscribePressed();
                        void subscribed();
                        void connected();
                        void showMessage(QString);
                    };
                    

                    qtmosq.h

                    #ifndef QTMOSQ_H
                    #define QTMOSQ_H
                    
                    #include "QObject"
                    #include "mosquittopp.h"
                    
                    using namespace mosqpp;
                    
                    class qtmosq : public QObject, public mosquittopp
                    {
                        Q_OBJECT
                    
                    public:
                        qtmosq(const char *id = NULL, bool clean_session = true) : mosquittopp (id, clean_session) {MID = 0;}
                        ~qtmosq() {}
                    
                        void on_connect(int result)
                        {
                            if (!result)
                            {
                                //subscribe(NULL, "$SYS/#", 2);
                                emit connected();
                            }
                            else
                                emit connectEnable();
                        }
                        void on_publish(int id)
                        {
                            MID++;
                            emit messageSent(true);
                        }
                        void on_subscribe(int mid, int qos_count, const int *granted_qos)
                        {
                            if (MID != 0)
                                emit subscribed();
                            MID++;
                        }
                        void on_message(const mosquitto_message *message)
                        {
                            if (message->payloadlen)
                            {
                                QString s(message->topic);
                                s += '>';
                                s += (char*) message->payload;
                                emit messageReceived(s);
                            }
                        }
                    
                        int* getMID() {return &MID;}
                    
                    private:
                        int MID;
                    
                    signals:
                        void connected();
                        void messageSent(bool);
                        void messageReceived(QString);
                        void connectEnable();
                        void subscribed();
                    };
                    
                    #endif // QTMOSQ_H
                    
                    

                    here above i send the code for the same.

                    if you get more please tell me.

                    J Offline
                    J Offline
                    jsulm
                    Lifetime Qt Champion
                    wrote on 15 Oct 2019, 05:00 last edited by jsulm
                    #10

                    @Milav So, you get that error here in MainWindow:

                    ui->connect->setDisabled(true); 
                    mosq = new qtmosq(id, true); // Is it here?
                    int size = sizeof(*mosq);
                    

                    ?
                    It should work.
                    Are there any other warnings or errors?
                    Try to do a complete rebuild: delete build directory, run qmake and build.

                    https://forum.qt.io/topic/113070/qt-code-of-conduct

                    M 2 Replies Last reply 15 Oct 2019, 05:08
                    0
                    • J jsulm
                      15 Oct 2019, 05:00

                      @Milav So, you get that error here in MainWindow:

                      ui->connect->setDisabled(true); 
                      mosq = new qtmosq(id, true); // Is it here?
                      int size = sizeof(*mosq);
                      

                      ?
                      It should work.
                      Are there any other warnings or errors?
                      Try to do a complete rebuild: delete build directory, run qmake and build.

                      M Offline
                      M Offline
                      Milav
                      wrote on 15 Oct 2019, 05:08 last edited by
                      #11

                      @jsulm

                      when i build the project it give me only warning like follow.

                      /home/tdp0009/Teq_Projects/Aug_2019/HMI/Firmware/QT/12_oct_hmi/qt-mosquitto-master/qtmosq.h:14: warning: 'mosqpp::mosquittopp::mosquittopp(const char*, bool)' is deprecated (declared at ../../../../CC_Lib/mosquitto/phytec_wega_build_websockets/usr/local/include/mosquittopp.h:94) [-Wdeprecated-declarations]
                      
                      /home/tdp0009/Teq_Projects/Aug_2019/HMI/Firmware/QT/12_oct_hmi/qt-mosquitto-master/mainwindow.cpp:57: warning: 'int mosqpp::mosquittopp::connect_async(const char*, int, int)' is deprecated (declared at ../../../../CC_Lib/mosquitto/phytec_wega_build_websockets/usr/local/include/mosquittopp.h:103) [-Wdeprecated-declarations]
                      
                      /home/tdp0009/Teq_Projects/Aug_2019/HMI/Firmware/QT/12_oct_hmi/qt-mosquitto-master/mainwindow.cpp:80: warning: 'int mosqpp::mosquittopp::subscribe(int*, const char*, int)' is deprecated (declared at ../../../../CC_Lib/mosquitto/phytec_wega_build_websockets/usr/local/include/mosquittopp.h:110) [-Wdeprecated-declarations]
                      

                      but i face segmentation fault error when i run that project, an i found the line at where i face segmentation fault.

                      it is ...

                      mosq->subscribe(NULL, "sensors/temprature", 1); // Segmentation falut
                      
                      M 1 Reply Last reply 15 Oct 2019, 06:10
                      0
                      • J jsulm
                        15 Oct 2019, 05:00

                        @Milav So, you get that error here in MainWindow:

                        ui->connect->setDisabled(true); 
                        mosq = new qtmosq(id, true); // Is it here?
                        int size = sizeof(*mosq);
                        

                        ?
                        It should work.
                        Are there any other warnings or errors?
                        Try to do a complete rebuild: delete build directory, run qmake and build.

                        M Offline
                        M Offline
                        Milav
                        wrote on 15 Oct 2019, 05:12 last edited by
                        #12

                        @jsulm

                        Hello

                        Here i have send the link at where i download the example.

                        Reference link

                        J 1 Reply Last reply 15 Oct 2019, 05:19
                        0
                        • M Milav
                          15 Oct 2019, 05:12

                          @jsulm

                          Hello

                          Here i have send the link at where i download the example.

                          Reference link

                          J Offline
                          J Offline
                          jsulm
                          Lifetime Qt Champion
                          wrote on 15 Oct 2019, 05:19 last edited by
                          #13

                          @Milav That example does exactly what I suggested you to do:

                          ui->connect->setDisabled(true);
                          
                          mosq = new qtmosq(id, false); // HERE
                          connect (mosq, SIGNAL(connectEnable()), this, SLOT(connectEnabled()));
                          

                          Did you try to build and run this example? If so - does it work?

                          https://forum.qt.io/topic/113070/qt-code-of-conduct

                          M 1 Reply Last reply 15 Oct 2019, 05:36
                          0
                          • J jsulm
                            15 Oct 2019, 05:19

                            @Milav That example does exactly what I suggested you to do:

                            ui->connect->setDisabled(true);
                            
                            mosq = new qtmosq(id, false); // HERE
                            connect (mosq, SIGNAL(connectEnable()), this, SLOT(connectEnabled()));
                            

                            Did you try to build and run this example? If so - does it work?

                            M Offline
                            M Offline
                            Milav
                            wrote on 15 Oct 2019, 05:36 last edited by
                            #14

                            @jsulm

                            Yes i delete the build directory and again i rebuild the whole project but i couldn't run the example. it is not work.

                            J 1 Reply Last reply 15 Oct 2019, 05:51
                            0
                            • M Milav
                              15 Oct 2019, 05:36

                              @jsulm

                              Yes i delete the build directory and again i rebuild the whole project but i couldn't run the example. it is not work.

                              J Offline
                              J Offline
                              jsulm
                              Lifetime Qt Champion
                              wrote on 15 Oct 2019, 05:51 last edited by
                              #15

                              @Milav said in segmentation fault:

                              it is not work

                              What exactly does this mean? Doesn't build? Crashes? Does not do what it should? ...?

                              https://forum.qt.io/topic/113070/qt-code-of-conduct

                              M 1 Reply Last reply 15 Oct 2019, 05:56
                              0
                              • J jsulm
                                15 Oct 2019, 05:51

                                @Milav said in segmentation fault:

                                it is not work

                                What exactly does this mean? Doesn't build? Crashes? Does not do what it should? ...?

                                M Offline
                                M Offline
                                Milav
                                wrote on 15 Oct 2019, 05:56 last edited by
                                #16

                                @jsulm

                                it means build successful.

                                but it is not run, it is crashes application.

                                means while running the application, the application are crash.

                                with following error.

                                "segmentation fault"

                                and i debug the application via qDebug(), the application are crash on following line of code.

                                mosq->subscribe(NULL, "sensors/temprature", 1); // Segmentation falut
                                
                                J 1 Reply Last reply 15 Oct 2019, 05:58
                                0
                                • M Milav
                                  15 Oct 2019, 05:56

                                  @jsulm

                                  it means build successful.

                                  but it is not run, it is crashes application.

                                  means while running the application, the application are crash.

                                  with following error.

                                  "segmentation fault"

                                  and i debug the application via qDebug(), the application are crash on following line of code.

                                  mosq->subscribe(NULL, "sensors/temprature", 1); // Segmentation falut
                                  
                                  J Offline
                                  J Offline
                                  J.Hilk
                                  Moderators
                                  wrote on 15 Oct 2019, 05:58 last edited by
                                  #17

                                  @Milav well, did you press connect before you pressed subscribe?

                                  If not it will crash...


                                  Be aware of the Qt Code of Conduct, when posting : https://forum.qt.io/topic/113070/qt-code-of-conduct


                                  Q: What's that?
                                  A: It's blue light.
                                  Q: What does it do?
                                  A: It turns blue.

                                  M 1 Reply Last reply 15 Oct 2019, 06:05
                                  0
                                  • J J.Hilk
                                    15 Oct 2019, 05:58

                                    @Milav well, did you press connect before you pressed subscribe?

                                    If not it will crash...

                                    M Offline
                                    M Offline
                                    Milav
                                    wrote on 15 Oct 2019, 06:05 last edited by
                                    #18

                                    @J-Hilk

                                    I press first Connect button and than after i press subscribed button.

                                    but it is crash...

                                    J 1 Reply Last reply 15 Oct 2019, 06:10
                                    0
                                    • M Milav
                                      15 Oct 2019, 05:08

                                      @jsulm

                                      when i build the project it give me only warning like follow.

                                      /home/tdp0009/Teq_Projects/Aug_2019/HMI/Firmware/QT/12_oct_hmi/qt-mosquitto-master/qtmosq.h:14: warning: 'mosqpp::mosquittopp::mosquittopp(const char*, bool)' is deprecated (declared at ../../../../CC_Lib/mosquitto/phytec_wega_build_websockets/usr/local/include/mosquittopp.h:94) [-Wdeprecated-declarations]
                                      
                                      /home/tdp0009/Teq_Projects/Aug_2019/HMI/Firmware/QT/12_oct_hmi/qt-mosquitto-master/mainwindow.cpp:57: warning: 'int mosqpp::mosquittopp::connect_async(const char*, int, int)' is deprecated (declared at ../../../../CC_Lib/mosquitto/phytec_wega_build_websockets/usr/local/include/mosquittopp.h:103) [-Wdeprecated-declarations]
                                      
                                      /home/tdp0009/Teq_Projects/Aug_2019/HMI/Firmware/QT/12_oct_hmi/qt-mosquitto-master/mainwindow.cpp:80: warning: 'int mosqpp::mosquittopp::subscribe(int*, const char*, int)' is deprecated (declared at ../../../../CC_Lib/mosquitto/phytec_wega_build_websockets/usr/local/include/mosquittopp.h:110) [-Wdeprecated-declarations]
                                      

                                      but i face segmentation fault error when i run that project, an i found the line at where i face segmentation fault.

                                      it is ...

                                      mosq->subscribe(NULL, "sensors/temprature", 1); // Segmentation falut
                                      
                                      M Offline
                                      M Offline
                                      mvuori
                                      wrote on 15 Oct 2019, 06:10 last edited by
                                      #19

                                      If temprature is supposed to be temperature, this is a bug:
                                      mosq->subscribe(NULL, "sensors/temprature", 1);

                                      M 1 Reply Last reply 15 Oct 2019, 06:29
                                      0
                                      • M Milav
                                        15 Oct 2019, 06:05

                                        @J-Hilk

                                        I press first Connect button and than after i press subscribed button.

                                        but it is crash...

                                        J Offline
                                        J Offline
                                        jsulm
                                        Lifetime Qt Champion
                                        wrote on 15 Oct 2019, 06:10 last edited by
                                        #20

                                        @Milav Did you debug to see whether mosq is not a nullptr? If it's not please provide stack trace after crash.
                                        Also, in connectPressed it does a return if port is not set - is it set if you press connect?
                                        You should really run through debugger...

                                        https://forum.qt.io/topic/113070/qt-code-of-conduct

                                        M 1 Reply Last reply 15 Oct 2019, 06:28
                                        0
                                        • J jsulm
                                          15 Oct 2019, 06:10

                                          @Milav Did you debug to see whether mosq is not a nullptr? If it's not please provide stack trace after crash.
                                          Also, in connectPressed it does a return if port is not set - is it set if you press connect?
                                          You should really run through debugger...

                                          M Offline
                                          M Offline
                                          Milav
                                          wrote on 15 Oct 2019, 06:28 last edited by
                                          #21

                                          @jsulm

                                          i debug the size of mosq pointer through following code.

                                           int size = sizeof(*mosq);
                                              qDebug() << size;
                                          

                                          and output is 20;

                                          and in connectpressed button slot are run succesfully.

                                          port value are shown correctly.

                                          when i run debugger it shows following error.

                                          The inferior stopped because it received a signal from the Operating System.
                                          
                                          Signal name : 
                                          SIGILL
                                          Signal meaning : 
                                          Illegal instruction
                                          
                                          

                                          hope you got my point.

                                          J 1 Reply Last reply 15 Oct 2019, 06:48
                                          0

                                          11/61

                                          15 Oct 2019, 05:08

                                          topic:navigator.unread, 50
                                          • Login

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