Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Application crashes while accessing Pointers and while Hovering over custom QGraphicsItems
Forum Updated to NodeBB v4.3 + New Features

Application crashes while accessing Pointers and while Hovering over custom QGraphicsItems

Scheduled Pinned Locked Moved Unsolved General and Desktop
pointerc++segfaultqgraphicsitem
14 Posts 3 Posters 3.9k Views 3 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.
  • L Offline
    L Offline
    Lanparty
    wrote on 17 Apr 2019, 16:55 last edited by
    #3

    Hi there! Thank you so much.

    The crash currently happens when I start the application (i think due to ellipse1->checkPointers();) or when I hover over one of the circles with my cursor.

    M 1 Reply Last reply 17 Apr 2019, 16:58
    0
    • L Lanparty
      17 Apr 2019, 16:55

      Hi there! Thank you so much.

      The crash currently happens when I start the application (i think due to ellipse1->checkPointers();) or when I hover over one of the circles with my cursor.

      M Offline
      M Offline
      mrjj
      Lifetime Qt Champion
      wrote on 17 Apr 2019, 16:58 last edited by
      #4

      @Lanparty
      Hi
      So if you put break point at
      void Slice::hoverEnterEvent(QGraphicsSceneHoverEvent *)
      and single step over the code.
      Can you then pinpoint which line it does crash in?

      L 1 Reply Last reply 17 Apr 2019, 17:16
      1
      • M mrjj
        17 Apr 2019, 16:58

        @Lanparty
        Hi
        So if you put break point at
        void Slice::hoverEnterEvent(QGraphicsSceneHoverEvent *)
        and single step over the code.
        Can you then pinpoint which line it does crash in?

        L Offline
        L Offline
        Lanparty
        wrote on 17 Apr 2019, 17:16 last edited by Lanparty
        #5

        @mrjj Hey, if i put the breakpoint where you implied it does not even get to the breakpoint and I only get the segfault (see above in screenshot) again.

        Even after commenting // ellipse1->checkPointers(); out it still behaves the same way while debugging.

        However when starting the application it starts now without crashing immediately (after taking out / ellipse1->checkPointers();), it only crashes once I hover over the objects.

        But I'll try to find the position where it crashes and I'll update this message or post another reply once I know.

        M 1 Reply Last reply 17 Apr 2019, 17:26
        0
        • L Lanparty
          17 Apr 2019, 17:16

          @mrjj Hey, if i put the breakpoint where you implied it does not even get to the breakpoint and I only get the segfault (see above in screenshot) again.

          Even after commenting // ellipse1->checkPointers(); out it still behaves the same way while debugging.

          However when starting the application it starts now without crashing immediately (after taking out / ellipse1->checkPointers();), it only crashes once I hover over the objects.

          But I'll try to find the position where it crashes and I'll update this message or post another reply once I know.

          M Offline
          M Offline
          mrjj
          Lifetime Qt Champion
          wrote on 17 Apr 2019, 17:26 last edited by
          #6

          @Lanparty
          Ok so its before hoverEnterEvent. thats odd.
          Also, there really is nothing of your code in call stack ?

          L 1 Reply Last reply 19 Apr 2019, 15:14
          0
          • S Offline
            S Offline
            SGaist
            Lifetime Qt Champion
            wrote on 17 Apr 2019, 20:27 last edited by
            #7

            Hi,

            The stack trace you posted seems to be from a release build. Can you share the stack trace from your debug build ?

            Interested in AI ? www.idiap.ch
            Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

            1 Reply Last reply
            2
            • M mrjj
              17 Apr 2019, 17:26

              @Lanparty
              Ok so its before hoverEnterEvent. thats odd.
              Also, there really is nothing of your code in call stack ?

              L Offline
              L Offline
              Lanparty
              wrote on 19 Apr 2019, 15:14 last edited by
              #8

              @mrjj @SGaist

              Hi! Thanks again for your replies and your interest in my current problem.
              I'm not quite sure if I did this the correct way, but I think I figured out how to get what you asked and I hope that this information is what you've been looking for.

              This should be the call stack from my debug build (at least I hope it is :'D):

              1  ntdll!RtlGetCurrentServiceSessionId                                                   0x77ae4cd9 
              2  ??                                                                                    0xb80afd3f 
              3  ??                                                                                    0x1ef069b0 
              4  ntdll!RtlFreeHeap                                                                     0x77ae3812 
              5  ntdll!RtlpNtSetValueKey                                                               0x77b82ea1 
              6  ntdll!RtlGetCurrentServiceSessionId                                                   0x77ae3c45 
              7  ??                                                                                    0x1ef069b8 
              8  ntdll!RtlFreeHeap                                                                     0x77ae3812 
              9  msvcrt!free                                                                           0x76a070b5 
              10 ??                                                                                    0x1f0000   
              11 QWindowsFontDatabase::releaseHandle                     qwindowsfontdatabase.cpp 1601 0x62a928b6 
              12 QtFontStyle::~QtFontStyle                               qfontdatabase.cpp        234  0x1372329  
              13 QtFontFoundry::~QtFontFoundry                           qfontdatabase.cpp        303  0x138530c  
              14 QtFontFamily::~QtFontFamily                             qfontdatabase.cpp        365  0x1375138  
              15 QFontDatabasePrivate::free                              qfontdatabase.cpp        482  0x13a8915  
              16 QFontDatabasePrivate::~QFontDatabasePrivate             qfontdatabase.cpp        470  0x13a89af  
              17 (anonymous namespace)::Q_QGS_privateDb::Holder::~Holder qfontdatabase.cpp        720  0x1121bed  
              18 __tcf_0                                                 qfontdatabase.cpp        720  0x1121c0a  
              19 _CRT_INIT *12                                                                         0x10511b4  
              20 __DllMainCRTStartup                                                                   0x1051325  
              21 DllMainCRTStartup *12                                                                 0x1051433  
              22 ntdll!RtlCheckTokenCapability                                                         0x77b0a896 
              23 ntdll!RtlHashUnicodeString                                                            0x77ae01a6 
              24 ntdll!LdrShutdownProcess                                                              0x77ad458d 
              25 ??                                                                                               
              
              

              I hope this helps. Enjoy your weekend and thanks again!

              M 1 Reply Last reply 19 Apr 2019, 18:49
              0
              • L Lanparty
                19 Apr 2019, 15:14

                @mrjj @SGaist

                Hi! Thanks again for your replies and your interest in my current problem.
                I'm not quite sure if I did this the correct way, but I think I figured out how to get what you asked and I hope that this information is what you've been looking for.

                This should be the call stack from my debug build (at least I hope it is :'D):

                1  ntdll!RtlGetCurrentServiceSessionId                                                   0x77ae4cd9 
                2  ??                                                                                    0xb80afd3f 
                3  ??                                                                                    0x1ef069b0 
                4  ntdll!RtlFreeHeap                                                                     0x77ae3812 
                5  ntdll!RtlpNtSetValueKey                                                               0x77b82ea1 
                6  ntdll!RtlGetCurrentServiceSessionId                                                   0x77ae3c45 
                7  ??                                                                                    0x1ef069b8 
                8  ntdll!RtlFreeHeap                                                                     0x77ae3812 
                9  msvcrt!free                                                                           0x76a070b5 
                10 ??                                                                                    0x1f0000   
                11 QWindowsFontDatabase::releaseHandle                     qwindowsfontdatabase.cpp 1601 0x62a928b6 
                12 QtFontStyle::~QtFontStyle                               qfontdatabase.cpp        234  0x1372329  
                13 QtFontFoundry::~QtFontFoundry                           qfontdatabase.cpp        303  0x138530c  
                14 QtFontFamily::~QtFontFamily                             qfontdatabase.cpp        365  0x1375138  
                15 QFontDatabasePrivate::free                              qfontdatabase.cpp        482  0x13a8915  
                16 QFontDatabasePrivate::~QFontDatabasePrivate             qfontdatabase.cpp        470  0x13a89af  
                17 (anonymous namespace)::Q_QGS_privateDb::Holder::~Holder qfontdatabase.cpp        720  0x1121bed  
                18 __tcf_0                                                 qfontdatabase.cpp        720  0x1121c0a  
                19 _CRT_INIT *12                                                                         0x10511b4  
                20 __DllMainCRTStartup                                                                   0x1051325  
                21 DllMainCRTStartup *12                                                                 0x1051433  
                22 ntdll!RtlCheckTokenCapability                                                         0x77b0a896 
                23 ntdll!RtlHashUnicodeString                                                            0x77ae01a6 
                24 ntdll!LdrShutdownProcess                                                              0x77ad458d 
                25 ??                                                                                               
                
                

                I hope this helps. Enjoy your weekend and thanks again!

                M Offline
                M Offline
                mrjj
                Lifetime Qt Champion
                wrote on 19 Apr 2019, 18:49 last edited by
                #9

                @Lanparty
                Hi
                Super.
                Is that from when it crashes ?

                L 1 Reply Last reply 20 Apr 2019, 10:02
                0
                • M mrjj
                  19 Apr 2019, 18:49

                  @Lanparty
                  Hi
                  Super.
                  Is that from when it crashes ?

                  L Offline
                  L Offline
                  Lanparty
                  wrote on 20 Apr 2019, 10:02 last edited by Lanparty
                  #10

                  @mrjj yeah, well I ran the debugger and this is what happened afterwards (including the application crashing)

                  1 Reply Last reply
                  0
                  • L Offline
                    L Offline
                    Lanparty
                    wrote on 26 Apr 2019, 13:11 last edited by
                    #11

                    @Lanparty said in Application crashes while accessing Pointers and while Hovering over custom QGraphicsItems:

                    void Slice::hoverEnterEvent(QGraphicsSceneHoverEvent *)
                    {
                        if (text.isNull())
                            return;
                    
                        QString percentageAsString = QString::number(int(this->getPercentage()));
                    
                        text.data()->setPlainText(this->category + " " + percentageAsString + "% ");
                    
                        int xOffset = int(rect().x() + rect().width()/2);
                        int yOffset = int(rect().y() + rect().height()/2);
                    
                        QPointF newCenterPoint = QPointF(this->pos().x()+ xOffset, this->pos().y() + yOffset);
                        QPointF textPoint = newCenterPoint;
                    
                        textPoint.setX(this->x() + 100);
                    
                        text.data()->setPos(textPoint);
                    
                        text.data()->setVisible(true);
                    }
                    

                    so, I actually managed to find out where my application crashed. The problem was this line:

                     text.data()->setPlainText(this->category + " " + percentageAsString + "% ");
                    

                    once I checked the expected parameters it kind of made sense. I'll try to find another way to achieve the string I originally wanted to be displayed.

                    1 Reply Last reply
                    0
                    • S Offline
                      S Offline
                      SGaist
                      Lifetime Qt Champion
                      wrote on 26 Apr 2019, 20:36 last edited by
                      #12

                      Do you mean you were missing the text.isNull() check ?

                      Interested in AI ? www.idiap.ch
                      Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                      L 1 Reply Last reply 28 Apr 2019, 11:03
                      0
                      • S SGaist
                        26 Apr 2019, 20:36

                        Do you mean you were missing the text.isNull() check ?

                        L Offline
                        L Offline
                        Lanparty
                        wrote on 28 Apr 2019, 11:03 last edited by Lanparty
                        #13

                        @SGaist No, that's the first thing I did inside the method. However, I simply assumed that I could use the method setPlainText() as I pleased, but it was expecting other arguments and crashed instead (I guess because the QString text would've been longer than the original one.

                        btw: how do I change the status of my post to "solved"?

                        M 1 Reply Last reply 28 Apr 2019, 11:13
                        0
                        • L Lanparty
                          28 Apr 2019, 11:03

                          @SGaist No, that's the first thing I did inside the method. However, I simply assumed that I could use the method setPlainText() as I pleased, but it was expecting other arguments and crashed instead (I guess because the QString text would've been longer than the original one.

                          btw: how do I change the status of my post to "solved"?

                          M Offline
                          M Offline
                          mrjj
                          Lifetime Qt Champion
                          wrote on 28 Apr 2019, 11:13 last edited by
                          #14

                          @Lanparty said in Application crashes while accessing Pointers and while Hovering over custom QGraphicsItems:

                          btw: how do I change the status of my post to "solved"?

                          First post, Topic Tools button to the side.

                          1 Reply Last reply
                          0

                          12/14

                          26 Apr 2019, 20:36

                          • Login

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