Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt Creator and other tools
  4. set<int> in Qt creator and debugger
Forum Updated to NodeBB v4.3 + New Features

set<int> in Qt creator and debugger

Scheduled Pinned Locked Moved Unsolved Qt Creator and other tools
creator 4.2.1windows 10 iotsetintmingwbug-17653
29 Posts 3 Posters 12.8k 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.
  • K Offline
    K Offline
    koahnig
    wrote on last edited by koahnig
    #1

    Yesterday I came across a strange output making no sense at all. Today I could replicate very easily.
    0_1485602944852_upload-171c3224-4060-4713-82da-1ba0f2cf1295

    This is on windows 10, Qt creator 4.2.1 and
    0_1485603090765_upload-5fcd733c-abac-4233-8ab3-2b8435f432d0

    Am I missing something?

    Vote the answer(s) that helped you to solve your issue(s)

    1 Reply Last reply
    0
    • K Offline
      K Offline
      koahnig
      wrote on last edited by
      #2

      Showing that it has something to do with the debugger
      0_1485603622123_upload-d7f46504-141f-4c66-86bd-819a3dffe9b0

      Vote the answer(s) that helped you to solve your issue(s)

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

        well i started on Qt5.5 and back then,
        when upgrading my my beloved win 7 to win 10, i also saw
        some strange issues and warnings. In Qt/Creator.

        Could you post code. ?

        Yes its easy to re-type but im old fashioned and likes that the code really IS the same. :)

        Just wondering if gone in later versions/gdb version.

        It looks like a bug to me. so lets test some more?

        K 1 Reply Last reply
        1
        • mrjjM mrjj

          well i started on Qt5.5 and back then,
          when upgrading my my beloved win 7 to win 10, i also saw
          some strange issues and warnings. In Qt/Creator.

          Could you post code. ?

          Yes its easy to re-type but im old fashioned and likes that the code really IS the same. :)

          Just wondering if gone in later versions/gdb version.

          It looks like a bug to me. so lets test some more?

          K Offline
          K Offline
          koahnig
          wrote on last edited by
          #4

          @mrjj

          Sure!

          #include <set>
          #include <QDebug>
          
          int main(int argc, char *argv[])
          {
          
              std::set < int > setint;
          
              for ( unsigned i = 0; i < 20; ++i )
              {
                  setint.insert (i);
              }
          
              for ( std::set<int>::const_iterator it = setint.begin(); it != setint.end(); ++it)
              {
                  qDebug() << *it;
              }
          
              return 0;
          }
          

          and here the .pro file, which holds another surprise with new creator.

          QT += core
          QT -= gui
          
          CONFIG += c++11
          
          TARGET = TestDebugSet
          CONFIG += console
          CONFIG -= app_bundle
          
          TEMPLATE = app
          
          SOURCES += main.cpp
          
          # The following define makes your compiler emit warnings if you use
          # any feature of Qt which as been marked deprecated (the exact warnings
          # depend on your compiler). Please consult the documentation of the
          # deprecated API in order to know how to port your code away from it.
          DEFINES += QT_DEPRECATED_WARNINGS
          
          # You can also make your code fail to compile if you use deprecated APIs.
          # In order to do so, uncomment the following line.
          # You can also select to disable deprecated APIs only up to a certain version of Qt.
          #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
          
          

          Certainly it is good to do more testing. I did not expect that it is as easily reproducable.
          If you mean old-fashioned -> lazy , I'm old-fashioned too. ;)

          Vote the answer(s) that helped you to solve your issue(s)

          mrjjM 1 Reply Last reply
          0
          • K Offline
            K Offline
            koahnig
            wrote on last edited by koahnig
            #5

            I see the same with Qt 5.7.1 and MinGW 5.3.0.

            Wasn't there something to be installed alongside with the tools for debugging with gdb?

            [edit, koahnig] That is what I remembered. Found in here
            GDB On Windows, use the Python-enabled GDB versions that is bundled with the Qt package or comes with recent versions of MinGW. On most Linux distributions the GDB builds shipped with the system are sufficient. You can also build your own. Follow the instructions in Building GDB. Builds of GDB shipped with Xcode on macOS are no longer supported.

            Vote the answer(s) that helped you to solve your issue(s)

            kshegunovK 1 Reply Last reply
            0
            • K koahnig

              I see the same with Qt 5.7.1 and MinGW 5.3.0.

              Wasn't there something to be installed alongside with the tools for debugging with gdb?

              [edit, koahnig] That is what I remembered. Found in here
              GDB On Windows, use the Python-enabled GDB versions that is bundled with the Qt package or comes with recent versions of MinGW. On most Linux distributions the GDB builds shipped with the system are sufficient. You can also build your own. Follow the instructions in Building GDB. Builds of GDB shipped with Xcode on macOS are no longer supported.

              kshegunovK Offline
              kshegunovK Offline
              kshegunov
              Moderators
              wrote on last edited by
              #6

              We (at least I) can't see the pictures.

              Read and abide by the Qt Code of Conduct

              K 1 Reply Last reply
              0
              • kshegunovK kshegunov

                We (at least I) can't see the pictures.

                K Offline
                K Offline
                koahnig
                wrote on last edited by kshegunov
                #7

                @kshegunov

                Here is a link to the second picture. Part of the picture is the first picture anyway.

                Vote the answer(s) that helped you to solve your issue(s)

                kshegunovK 1 Reply Last reply
                0
                • K koahnig

                  @kshegunov

                  Here is a link to the second picture. Part of the picture is the first picture anyway.

                  kshegunovK Offline
                  kshegunovK Offline
                  kshegunov
                  Moderators
                  wrote on last edited by
                  #8

                  I'd venture to say you're seeing the buckets for the values, not the actual values. What does the code output to the debug stream? Is it the numbers shuffled up?

                  Read and abide by the Qt Code of Conduct

                  K 1 Reply Last reply
                  0
                  • kshegunovK kshegunov

                    I'd venture to say you're seeing the buckets for the values, not the actual values. What does the code output to the debug stream? Is it the numbers shuffled up?

                    K Offline
                    K Offline
                    koahnig
                    wrote on last edited by
                    #9

                    @kshegunov
                    The output to qDebug() is correct. You should see, it is part of the lower end of the picture.

                    What do you mean with buckets?
                    Whatever this would be, shouldn't it non-repeating?

                    Vote the answer(s) that helped you to solve your issue(s)

                    kshegunovK 1 Reply Last reply
                    0
                    • K koahnig

                      @kshegunov
                      The output to qDebug() is correct. You should see, it is part of the lower end of the picture.

                      What do you mean with buckets?
                      Whatever this would be, shouldn't it non-repeating?

                      kshegunovK Offline
                      kshegunovK Offline
                      kshegunov
                      Moderators
                      wrote on last edited by kshegunov
                      #10

                      @koahnig said in set<int> in Qt creator and debugger:

                      What do you mean with buckets?
                      Whatever this would be, shouldn't it non-repeating?

                      No, it can be repeating, it depends on the internal structure of std::set. I assumed (erroneously) the set is implemented as a hash-table (like in Qt), so that's where "buckets" come from - it's the index of the array where the actual data is kept. Anyway, after a quick lookup I see it's a red-black tree (i.e. like QMap), so my new hypothesis is you're looking at the node index be it left node or right. I'd even make a further step and speculate 0 is the root node, 1 is the left node and 2 is the right node (relative to the parent).

                      In any case you should probably file a bug report on it, as the debug helpers don't seem to properly resolve the actual data.

                      Read and abide by the Qt Code of Conduct

                      K 1 Reply Last reply
                      0
                      • kshegunovK kshegunov

                        @koahnig said in set<int> in Qt creator and debugger:

                        What do you mean with buckets?
                        Whatever this would be, shouldn't it non-repeating?

                        No, it can be repeating, it depends on the internal structure of std::set. I assumed (erroneously) the set is implemented as a hash-table (like in Qt), so that's where "buckets" come from - it's the index of the array where the actual data is kept. Anyway, after a quick lookup I see it's a red-black tree (i.e. like QMap), so my new hypothesis is you're looking at the node index be it left node or right. I'd even make a further step and speculate 0 is the root node, 1 is the left node and 2 is the right node (relative to the parent).

                        In any case you should probably file a bug report on it, as the debug helpers don't seem to properly resolve the actual data.

                        K Offline
                        K Offline
                        koahnig
                        wrote on last edited by
                        #11

                        @kshegunov

                        Bug report filed QTCREATORBUG-17653

                        Vote the answer(s) that helped you to solve your issue(s)

                        1 Reply Last reply
                        2
                        • K koahnig

                          @mrjj

                          Sure!

                          #include <set>
                          #include <QDebug>
                          
                          int main(int argc, char *argv[])
                          {
                          
                              std::set < int > setint;
                          
                              for ( unsigned i = 0; i < 20; ++i )
                              {
                                  setint.insert (i);
                              }
                          
                              for ( std::set<int>::const_iterator it = setint.begin(); it != setint.end(); ++it)
                              {
                                  qDebug() << *it;
                              }
                          
                              return 0;
                          }
                          

                          and here the .pro file, which holds another surprise with new creator.

                          QT += core
                          QT -= gui
                          
                          CONFIG += c++11
                          
                          TARGET = TestDebugSet
                          CONFIG += console
                          CONFIG -= app_bundle
                          
                          TEMPLATE = app
                          
                          SOURCES += main.cpp
                          
                          # The following define makes your compiler emit warnings if you use
                          # any feature of Qt which as been marked deprecated (the exact warnings
                          # depend on your compiler). Please consult the documentation of the
                          # deprecated API in order to know how to port your code away from it.
                          DEFINES += QT_DEPRECATED_WARNINGS
                          
                          # You can also make your code fail to compile if you use deprecated APIs.
                          # In order to do so, uncomment the following line.
                          # You can also select to disable deprecated APIs only up to a certain version of Qt.
                          #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
                          
                          

                          Certainly it is good to do more testing. I did not expect that it is as easily reproducable.
                          If you mean old-fashioned -> lazy , I'm old-fashioned too. ;)

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

                          @koahnig

                          Hi
                          "If you mean old-fashioned -> lazy , I'm old-fashioned too. ;)"
                          Yes also that :))

                          Tried at home with Qt5.7, Creator 4.1.0, win 10, mingw, gdb 7.10.1

                          alt text

                          K 2 Replies Last reply
                          1
                          • mrjjM mrjj

                            @koahnig

                            Hi
                            "If you mean old-fashioned -> lazy , I'm old-fashioned too. ;)"
                            Yes also that :))

                            Tried at home with Qt5.7, Creator 4.1.0, win 10, mingw, gdb 7.10.1

                            alt text

                            K Offline
                            K Offline
                            koahnig
                            wrote on last edited by
                            #13

                            @mrjj

                            Thanks for checking.

                            This reflects my memory. I had upgraded recently to latest qt creator version, but left all the different Qt lib version and their associated tools, respectively there might be an update somewhere, but not on all different Qt lib versions.

                            I am pretty sure that the display worked prior to the upgrade of creator.

                            Unfortunately, I cannot go back easily to previous Qt creator setup for checking. At least I will not dare to do, because there have been adaptations to project setups.

                            Vote the answer(s) that helped you to solve your issue(s)

                            1 Reply Last reply
                            0
                            • mrjjM mrjj

                              @koahnig

                              Hi
                              "If you mean old-fashioned -> lazy , I'm old-fashioned too. ;)"
                              Yes also that :))

                              Tried at home with Qt5.7, Creator 4.1.0, win 10, mingw, gdb 7.10.1

                              alt text

                              K Offline
                              K Offline
                              koahnig
                              wrote on last edited by
                              #14

                              @mrjj

                              Took the liberty to add a comment and your screenshot to the bug report on JIRA.

                              Vote the answer(s) that helped you to solve your issue(s)

                              mrjjM 1 Reply Last reply
                              1
                              • K koahnig

                                @mrjj

                                Took the liberty to add a comment and your screenshot to the bug report on JIRA.

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

                                @koahnig
                                Super. So we are thinking its related to Creator version and not so much Qt version?
                                Sounds like. Was working in Creator 3.6 ? and then upgraded to 4.2.1 and
                                it was now incorrect?

                                K 1 Reply Last reply
                                1
                                • mrjjM mrjj

                                  @koahnig
                                  Super. So we are thinking its related to Creator version and not so much Qt version?
                                  Sounds like. Was working in Creator 3.6 ? and then upgraded to 4.2.1 and
                                  it was now incorrect?

                                  K Offline
                                  K Offline
                                  koahnig
                                  wrote on last edited by koahnig
                                  #16

                                  @mrjj
                                  Not sure, but I think I had a 4.1.x already bnefore upgrading. This would correlate with your findings.
                                  [edit:koahnig] Yes, the change to V4.2.1 brought up the problem.

                                  I am too "old-fashioned" to keep track of this.
                                  In general I am a slow upgrader, because "Never change a running system". Therefore, I am mainly using 5.4.2 at the moment. This gives the nasty message when starting up the application on win10, but it works and that is the point.

                                  Vote the answer(s) that helped you to solve your issue(s)

                                  mrjjM 1 Reply Last reply
                                  0
                                  • K koahnig

                                    @mrjj
                                    Not sure, but I think I had a 4.1.x already bnefore upgrading. This would correlate with your findings.
                                    [edit:koahnig] Yes, the change to V4.2.1 brought up the problem.

                                    I am too "old-fashioned" to keep track of this.
                                    In general I am a slow upgrader, because "Never change a running system". Therefore, I am mainly using 5.4.2 at the moment. This gives the nasty message when starting up the application on win10, but it works and that is the point.

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

                                    @koahnig
                                    So if I upgrade my Creator, i should get the same. maybe.
                                    You just download other Creator from
                                    https://download.qt.io/official_releases/qtcreator/4.2/4.2.1/
                                    and run it ?

                                    K 1 Reply Last reply
                                    0
                                    • mrjjM mrjj

                                      @koahnig
                                      So if I upgrade my Creator, i should get the same. maybe.
                                      You just download other Creator from
                                      https://download.qt.io/official_releases/qtcreator/4.2/4.2.1/
                                      and run it ?

                                      K Offline
                                      K Offline
                                      koahnig
                                      wrote on last edited by
                                      #18

                                      @mrjj
                                      No, I simply used the maintenance tool and used the second entry (updating/upgrading?).
                                      Therefore, there could be also some updates invloved for the other tools. I did not pay attention, but it is probably save to assume that the installation for Qt5.4.2 stayed as it was.

                                      Vote the answer(s) that helped you to solve your issue(s)

                                      mrjjM 1 Reply Last reply
                                      0
                                      • K koahnig

                                        @mrjj
                                        No, I simply used the maintenance tool and used the second entry (updating/upgrading?).
                                        Therefore, there could be also some updates invloved for the other tools. I did not pay attention, but it is probably save to assume that the installation for Qt5.4.2 stayed as it was.

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

                                        @koahnig
                                        Hi i used the update option and updated ONLY Creator.
                                        ( and some docs that was not de-selectable)

                                        And i have issue now
                                        alt text

                                        So it seems a bug in 4.2.1 .

                                        Soo where is my downgrade option ? :)

                                        K 1 Reply Last reply
                                        1
                                        • mrjjM mrjj

                                          @koahnig
                                          Hi i used the update option and updated ONLY Creator.
                                          ( and some docs that was not de-selectable)

                                          And i have issue now
                                          alt text

                                          So it seems a bug in 4.2.1 .

                                          Soo where is my downgrade option ? :)

                                          K Offline
                                          K Offline
                                          koahnig
                                          wrote on last edited by
                                          #20

                                          @mrjj

                                          Bad luck, I guess. ;)

                                          At least I know that this is not an issue with my specific machine.

                                          Somehow it would be good to have parallel installations of Qt creator as well. However, the implications might be huge.

                                          Vote the answer(s) that helped you to solve your issue(s)

                                          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