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. function crashes

function crashes

Scheduled Pinned Locked Moved Unsolved General and Desktop
32 Posts 4 Posters 5.6k Views
  • 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.
  • S Offline
    S Offline
    saber
    wrote on last edited by
    #1

    here is the function to update cpu information .
    when i open this app 2 at the same time it crashes.

    void ResourcesPage::updateCpuChart()
    {
        static int second = 0;
    
        QList<int> cpuPercents = im->getCpuPercents();
    
        QVector<QLineSeries *> seriesList = cpuChart->getSeriesList();
    
        for (int j = 0; j < seriesList.count(); j++){
            int p = cpuPercents.at(j+1);
    
            for (int i = 0; i < (second < 61 ? second : 61); i++)
                seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y());
    
            seriesList.at(j)->insert(0, QPointF(0, p));
    
            seriesList.at(j)->setName(QString("CPU%1 %2%").arg(j+1).arg(p));
    
            if(second > 61) seriesList.at(j)->removePoints(61, 1);
        }
    
        second++;
    
        cpuChart->setSeriesList(seriesList);
    }
    

    HERE IS DEBUG OUTPUT OF THIS ERROR.

    0_1525770909776_Screenshot_2018-05-07_20-06-38.png

    Taz742T 1 Reply Last reply
    0
    • mrjjM Offline
      mrjjM Offline
      mrjj
      Lifetime Qt Champion
      wrote on last edited by
      #2

      Hi
      For second app, maybe is is empty ?
      Something like
      seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y());

      might crash if seriesList is empty or i is out of bounds.
      I would add more checks and see what is going on.

      Taz742T 1 Reply Last reply
      3
      • mrjjM mrjj

        Hi
        For second app, maybe is is empty ?
        Something like
        seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y());

        might crash if seriesList is empty or i is out of bounds.
        I would add more checks and see what is going on.

        Taz742T Offline
        Taz742T Offline
        Taz742
        wrote on last edited by
        #3

        @mrjj
        seriesList have 4 items.

        Do what you want.

        1 Reply Last reply
        1
        • S saber

          here is the function to update cpu information .
          when i open this app 2 at the same time it crashes.

          void ResourcesPage::updateCpuChart()
          {
              static int second = 0;
          
              QList<int> cpuPercents = im->getCpuPercents();
          
              QVector<QLineSeries *> seriesList = cpuChart->getSeriesList();
          
              for (int j = 0; j < seriesList.count(); j++){
                  int p = cpuPercents.at(j+1);
          
                  for (int i = 0; i < (second < 61 ? second : 61); i++)
                      seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y());
          
                  seriesList.at(j)->insert(0, QPointF(0, p));
          
                  seriesList.at(j)->setName(QString("CPU%1 %2%").arg(j+1).arg(p));
          
                  if(second > 61) seriesList.at(j)->removePoints(61, 1);
              }
          
              second++;
          
              cpuChart->setSeriesList(seriesList);
          }
          

          HERE IS DEBUG OUTPUT OF THIS ERROR.

          0_1525770909776_Screenshot_2018-05-07_20-06-38.png

          Taz742T Offline
          Taz742T Offline
          Taz742
          wrote on last edited by Taz742
          #4

          @saber said in function crashes:

              for (int i = 0; i < (second < 61 ? second : 61); i++)
                  seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y());
          

          maybe

              for (int i = 0; i < std::min(std::min(second, seriesList.at(j)->points().size() - 1), 61); i++)
                  seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y());
          

          ?

          Do what you want.

          S 1 Reply Last reply
          2
          • Taz742T Taz742

            @saber said in function crashes:

                for (int i = 0; i < (second < 61 ? second : 61); i++)
                    seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y());
            

            maybe

                for (int i = 0; i < std::min(std::min(second, seriesList.at(j)->points().size() - 1), 61); i++)
                    seriesList.at(j)->replace(i, (i+1), seriesList.at(j)->at(i).y());
            

            ?

            S Offline
            S Offline
            saber
            wrote on last edited by
            #5

            @Taz742
            not working .
            two same window crash the app.

            mrjjM Taz742T 2 Replies Last reply
            0
            • S saber

              @Taz742
              not working .
              two same window crash the app.

              mrjjM Offline
              mrjjM Offline
              mrjj
              Lifetime Qt Champion
              wrote on last edited by
              #6

              @saber
              Hi
              Why not debug it then?
              Should be easy to spot what is going on in debugger since you seem to hard crash.

              1 Reply Last reply
              4
              • S saber

                @Taz742
                not working .
                two same window crash the app.

                Taz742T Offline
                Taz742T Offline
                Taz742
                wrote on last edited by
                #7

                @saber
                When window crashed what is 'i'-s value?

                Do what you want.

                S 1 Reply Last reply
                1
                • Taz742T Taz742

                  @saber
                  When window crashed what is 'i'-s value?

                  S Offline
                  S Offline
                  saber
                  wrote on last edited by
                  #8

                  @Taz742
                  0_1526028838554_qt.png

                  mrjjM 1 Reply Last reply
                  0
                  • S saber

                    @Taz742
                    0_1526028838554_qt.png

                    mrjjM Offline
                    mrjjM Offline
                    mrjj
                    Lifetime Qt Champion
                    wrote on last edited by
                    #9

                    @saber
                    I put my money you crash in the
                    seriesList.at(j)->at(i).y() part.

                    S 1 Reply Last reply
                    1
                    • mrjjM mrjj

                      @saber
                      I put my money you crash in the
                      seriesList.at(j)->at(i).y() part.

                      S Offline
                      S Offline
                      saber
                      wrote on last edited by
                      #10

                      @mrjj
                      sorry.
                      not a clue ,how to fix or what's the error.

                      mrjjM 1 Reply Last reply
                      0
                      • S saber

                        @mrjj
                        sorry.
                        not a clue ,how to fix or what's the error.

                        mrjjM Offline
                        mrjjM Offline
                        mrjj
                        Lifetime Qt Champion
                        wrote on last edited by
                        #11

                        @saber
                        Hi
                        I would insert qDebug() for size() of all lists involved and
                        also dump the values of i and j.
                        Its hard to guess at since normally one inspects the runtime variables in the debugger to see if all
                        are within bounds.

                        what does seriesList.at(j) return ? a QString or list ?

                        S 1 Reply Last reply
                        0
                        • mrjjM mrjj

                          @saber
                          Hi
                          I would insert qDebug() for size() of all lists involved and
                          also dump the values of i and j.
                          Its hard to guess at since normally one inspects the runtime variables in the debugger to see if all
                          are within bounds.

                          what does seriesList.at(j) return ? a QString or list ?

                          S Offline
                          S Offline
                          saber
                          wrote on last edited by
                          #12

                          @mrjj
                          this
                          0_1526034483163_qw.png

                          mrjjM 1 Reply Last reply
                          0
                          • S saber

                            @mrjj
                            this
                            0_1526034483163_qw.png

                            mrjjM Offline
                            mrjjM Offline
                            mrjj
                            Lifetime Qt Champion
                            wrote on last edited by mrjj
                            #13

                            @saber
                            Ok so its a Qlineseries pointer
                            Looking at its replace, it seems to be this one ?
                            void QXYSeries::replace(int index, qreal newX, qreal newY)

                            anyway, you can split to multiple statements so its more clear which part that crashes.

                            for (int i = 0; i < (second < 61 ? second : 61); i++) {
                            auto Line= seriesList.at(j);
                            auto value = seriesList.at(j)->at(i).y();
                            Line->replace(i, (i+1),value );
                            }

                            S 1 Reply Last reply
                            0
                            • mrjjM mrjj

                              @saber
                              Ok so its a Qlineseries pointer
                              Looking at its replace, it seems to be this one ?
                              void QXYSeries::replace(int index, qreal newX, qreal newY)

                              anyway, you can split to multiple statements so its more clear which part that crashes.

                              for (int i = 0; i < (second < 61 ? second : 61); i++) {
                              auto Line= seriesList.at(j);
                              auto value = seriesList.at(j)->at(i).y();
                              Line->replace(i, (i+1),value );
                              }

                              S Offline
                              S Offline
                              saber
                              wrote on last edited by
                              #14

                              @mrjj
                              sorry .i have no idea how to do that ,as our lead developer is gone for now.
                              so we are in short of intelligences .
                              here is the app .if you have some time ........
                              CoreBox

                              mrjjM 1 Reply Last reply
                              0
                              • S saber

                                @mrjj
                                sorry .i have no idea how to do that ,as our lead developer is gone for now.
                                so we are in short of intelligences .
                                here is the app .if you have some time ........
                                CoreBox

                                mrjjM Offline
                                mrjjM Offline
                                mrjj
                                Lifetime Qt Champion
                                wrote on last edited by
                                #15

                                @saber
                                Hi
                                Will it work on any linux?
                                Also, you are trying to fix the
                                Known Bugs
                                Opening two dashboard ,crash the whole app. <<< -- that one ?

                                S 1 Reply Last reply
                                0
                                • mrjjM mrjj

                                  @saber
                                  Hi
                                  Will it work on any linux?
                                  Also, you are trying to fix the
                                  Known Bugs
                                  Opening two dashboard ,crash the whole app. <<< -- that one ?

                                  S Offline
                                  S Offline
                                  saber
                                  wrote on last edited by saber
                                  #16

                                  @mrjj
                                  yes it wiil run on any linux. as far as i know.
                                  because it has little dependences(qt,file,libmagic-dev/libmagic-mgc/libmagic1)
                                  and yes for now i want to fix the "Opening two dashboard ,crash the whole app"
                                  but it also have other bugs here

                                  my way to fix all this and add this feature by opening issue in qt forum.
                                  as i don't know the high level coding.

                                  i was intendant to do a invitation to join this project in this forum .but i was woried as it will be right way to that.
                                  if you have some time to fix this issue........

                                  mrjjM 1 Reply Last reply
                                  0
                                  • S saber

                                    @mrjj
                                    yes it wiil run on any linux. as far as i know.
                                    because it has little dependences(qt,file,libmagic-dev/libmagic-mgc/libmagic1)
                                    and yes for now i want to fix the "Opening two dashboard ,crash the whole app"
                                    but it also have other bugs here

                                    my way to fix all this and add this feature by opening issue in qt forum.
                                    as i don't know the high level coding.

                                    i was intendant to do a invitation to join this project in this forum .but i was woried as it will be right way to that.
                                    if you have some time to fix this issue........

                                    mrjjM Offline
                                    mrjjM Offline
                                    mrjj
                                    Lifetime Qt Champion
                                    wrote on last edited by
                                    #17

                                    @saber
                                    Ok, seems like a big project.
                                    What ever happen to the person that wrote the code ?

                                    S 1 Reply Last reply
                                    0
                                    • mrjjM mrjj

                                      @saber
                                      Ok, seems like a big project.
                                      What ever happen to the person that wrote the code ?

                                      S Offline
                                      S Offline
                                      saber
                                      wrote on last edited by
                                      #18

                                      @mrjj
                                      it is not a bigg project.
                                      me and my friend made this app.
                                      my view , his code. he is has no interest and time for it now.
                                      so what you are thinking to .....

                                      mrjjM 1 Reply Last reply
                                      0
                                      • S saber

                                        @mrjj
                                        it is not a bigg project.
                                        me and my friend made this app.
                                        my view , his code. he is has no interest and time for it now.
                                        so what you are thinking to .....

                                        mrjjM Offline
                                        mrjjM Offline
                                        mrjj
                                        Lifetime Qt Champion
                                        wrote on last edited by
                                        #19

                                        @saber
                                        Ok, so you Designed it and he programmed it. sweet.
                                        Currently im spring cleaning pc so i have no linux around before monday.

                                        But if its easy to build, i might have a look at that bug next week.

                                        That said i have huge project at work so I cant help program it
                                        like project member.

                                        S 1 Reply Last reply
                                        0
                                        • mrjjM mrjj

                                          @saber
                                          Ok, so you Designed it and he programmed it. sweet.
                                          Currently im spring cleaning pc so i have no linux around before monday.

                                          But if its easy to build, i might have a look at that bug next week.

                                          That said i have huge project at work so I cant help program it
                                          like project member.

                                          S Offline
                                          S Offline
                                          saber
                                          wrote on last edited by
                                          #20

                                          @mrjj
                                          thanks for helping.
                                          it is easy to build .just the 2 dependencies .
                                          thats ok ,if you could not join as a project member.
                                          programar like you need little time to solve this listed problems.

                                          looking forward to hear for you.

                                          mrjjM 1 Reply Last reply
                                          0

                                          • Login

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