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.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.
  • 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 J 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?

                            J 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...

                              J Offline
                              J 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
                              • J JonB
                                15 Oct 2019, 07:16

                                @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 Offline
                                M Offline
                                Milav
                                wrote on 15 Oct 2019, 07:18 last edited by
                                #26

                                @JonB

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

                                qtmosq(0xac50b0)

                                1 Reply Last reply
                                0
                                • M Milav
                                  15 Oct 2019, 07:14

                                  @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?

                                  J Offline
                                  J Offline
                                  JonB
                                  wrote on 15 Oct 2019, 07:20 last edited by JonB
                                  #27

                                  @Milav

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

                                  I'm not sure this is actually trying to deference the pointer, it may just print its value. I would try something likeqDebug() << mosq->something;, where something is some field you know is supposed to exist & be valid in a qtmosq. Or try qDebug() << *mosq (note the *)?

                                  how i see stack trace in qt?
                                  can you please explore me more about stack trace?

                                  I don't know how you run in your "Embedded Custom Board", but can you run the app from inside a debugger? then when it seg faults you will see a "stack trace" in the debugger showing the call stack when the fault occurred.

                                  J M 2 Replies Last reply 15 Oct 2019, 07:25
                                  1
                                  • J JonB
                                    15 Oct 2019, 07:20

                                    @Milav

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

                                    I'm not sure this is actually trying to deference the pointer, it may just print its value. I would try something likeqDebug() << mosq->something;, where something is some field you know is supposed to exist & be valid in a qtmosq. Or try qDebug() << *mosq (note the *)?

                                    how i see stack trace in qt?
                                    can you please explore me more about stack trace?

                                    I don't know how you run in your "Embedded Custom Board", but can you run the app from inside a debugger? then when it seg faults you will see a "stack trace" in the debugger showing the call stack when the fault occurred.

                                    J Offline
                                    J Offline
                                    jsulm
                                    Lifetime Qt Champion
                                    wrote on 15 Oct 2019, 07:25 last edited by jsulm
                                    #28

                                    @JonB said in segmentation fault:

                                    I'm not sure this is actually trying to deference the pointer

                                    It does not, but I wanted to see its value :-)
                                    Looks like it's not NULL.

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

                                    J 1 Reply Last reply 15 Oct 2019, 07:27
                                    1
                                    • J jsulm
                                      15 Oct 2019, 07:25

                                      @JonB said in segmentation fault:

                                      I'm not sure this is actually trying to deference the pointer

                                      It does not, but I wanted to see its value :-)
                                      Looks like it's not NULL.

                                      J Offline
                                      J Offline
                                      JonB
                                      wrote on 15 Oct 2019, 07:27 last edited by JonB
                                      #29

                                      @jsulm
                                      Indeedy :) So now let's see how qDebug() << *mosq fares?

                                      M 1 Reply Last reply 15 Oct 2019, 07:32
                                      0
                                      • J JonB
                                        15 Oct 2019, 07:20

                                        @Milav

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

                                        I'm not sure this is actually trying to deference the pointer, it may just print its value. I would try something likeqDebug() << mosq->something;, where something is some field you know is supposed to exist & be valid in a qtmosq. Or try qDebug() << *mosq (note the *)?

                                        how i see stack trace in qt?
                                        can you please explore me more about stack trace?

                                        I don't know how you run in your "Embedded Custom Board", but can you run the app from inside a debugger? then when it seg faults you will see a "stack trace" in the debugger showing the call stack when the fault occurred.

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

                                        @JonB said in segmentation fault:

                                        qDebug() << *mosq

                                        gives error :-

                                        /home/tdp0009/Teq_Projects/Aug_2019/HMI/Firmware/QT/12_oct_hmi/qt-mosquitto-master/mainwindow.cpp:54: note:   'qtmosq' is not derived from 'const QFlags<T>'
                                        

                                        @JonB said in segmentation fault:

                                        qDebug() << mosq->something

                                        i tried following things and it output are '0'.

                                        1. qDebug() << mosq->connect_async(host.data(), port);
                                        2. qDebug() << mosq->loop_start();
                                        3. qDebug() << mosq->subscribe(NULL, "sensors/temprature", 1);

                                        the output of all above command are zero (0).

                                        @JonB said in segmentation fault:

                                        app from inside a debugge

                                        i am not able to run the debugger because it gives following error.

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

                                        hope you got your answer.

                                        J 1 Reply Last reply 15 Oct 2019, 07:34
                                        0
                                        • J JonB
                                          15 Oct 2019, 07:27

                                          @jsulm
                                          Indeedy :) So now let's see how qDebug() << *mosq fares?

                                          M Offline
                                          M Offline
                                          Milav
                                          wrote on 15 Oct 2019, 07:32 last edited by
                                          #31

                                          @JonB said in segmentation fault:

                                          @jsulm
                                          Indeedy :) So now let's see how qDebug() << *mosq fares?

                                          sorry the error is as following not previous one.

                                          /home/tdp0009/Teq_Projects/Aug_2019/HMI/Firmware/QT/12_oct_hmi/qt-mosquitto-master/mainwindow.cpp:54: error: no match for 'operator<<' in 'qDebug()() << *((MainWindow*)this)->MainWindow::mosq'
                                          
                                          M 1 Reply Last reply 15 Oct 2019, 07:34
                                          0

                                          21/61

                                          15 Oct 2019, 06:28

                                          • Login

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