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 Updated to NodeBB v4.3 + New Features

segmentation fault

Scheduled Pinned Locked Moved Unsolved Mobile and Embedded
qt 4.8cross-compilingarmv7mqtt
61 Posts 6 Posters 24.8k 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
    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
                                  • M mvuori
                                    15 Oct 2019, 06:10

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

                                    M Offline
                                    M Offline
                                    Milav
                                    wrote on 15 Oct 2019, 06:29 last edited by
                                    #22

                                    @mvuori

                                    no it is supposed to be sensors/temprature.

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

                                      @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 Offline
                                      J Offline
                                      jsulm
                                      Lifetime Qt Champion
                                      wrote on 15 Oct 2019, 06:48 last edited by
                                      #23

                                      @Milav said in segmentation fault:

                                      i debug the size of mosq pointer through following code.

                                      The size of a pointer is fixed, it doesn't matter whether it contains nullptr or something else.
                                      Do

                                      qDebug() << mosq;
                                      

                                      instead to see the value of the pointer.
                                      Without stack trace I can't tell you what is going on...

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

                                      M JonBJ 2 Replies Last reply 15 Oct 2019, 07:14
                                      0
                                      • J jsulm
                                        15 Oct 2019, 06:48

                                        @Milav said in segmentation fault:

                                        i debug the size of mosq pointer through following code.

                                        The size of a pointer is fixed, it doesn't matter whether it contains nullptr or something else.
                                        Do

                                        qDebug() << mosq;
                                        

                                        instead to see the value of the pointer.
                                        Without stack trace I can't tell you what is going on...

                                        M Offline
                                        M Offline
                                        Milav
                                        wrote on 15 Oct 2019, 07:14 last edited by
                                        #24

                                        @jsulm

                                        when i execute "qDebug() << mosq;" it gives following output.

                                        qtmosq(0xac50b0)
                                        

                                        how i see stack trace in qt?

                                        can you please explore me more about stack trace?

                                        JonBJ 1 Reply Last reply 15 Oct 2019, 07:20
                                        0
                                        • J jsulm
                                          15 Oct 2019, 06:48

                                          @Milav said in segmentation fault:

                                          i debug the size of mosq pointer through following code.

                                          The size of a pointer is fixed, it doesn't matter whether it contains nullptr or something else.
                                          Do

                                          qDebug() << mosq;
                                          

                                          instead to see the value of the pointer.
                                          Without stack trace I can't tell you what is going on...

                                          JonBJ Offline
                                          JonBJ Offline
                                          JonB
                                          wrote on 15 Oct 2019, 07:16 last edited by
                                          #25

                                          @Milav

                                          int size = sizeof(*mosq);

                                          @jsulm

                                          The size of a pointer is fixed,

                                          A slight slip of the tongue there. I think what my colleague @jsulm meant to clarify is: sizeof(...) is a compile-time calculation, it does not matter what the value of mosq is or what it points at run-time, rather this statement just assigns sizeof(qtmosq) regardless. As he says, show us what is in the mosq.

                                          M 1 Reply Last reply 15 Oct 2019, 07:18
                                          0

                                          15/61

                                          15 Oct 2019, 05:51

                                          46 unread
                                          • Login

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