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.
  • 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
                                    • K koahnig

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

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

                                      @koahnig
                                      Its really reproducible.
                                      Just tried in virtual. Same result.

                                      In theory , there should be nothing stopping us from having multiple Creators but
                                      i wonder if a 3.6 version can load the plugins of 4.2.1

                                      K 1 Reply Last reply
                                      0
                                      • mrjjM mrjj

                                        @koahnig
                                        Its really reproducible.
                                        Just tried in virtual. Same result.

                                        In theory , there should be nothing stopping us from having multiple Creators but
                                        i wonder if a 3.6 version can load the plugins of 4.2.1

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

                                        @mrjj

                                        I doubt that creator 3.6 can load plugins of version 4.2.1.

                                        I had wasted a while ago my time with enhancing the doxygen plugin. My rational was that at least I can use while doing a complete compilation of creator with all plugins. However, I had found out that another plugin, which I was relying on, changed interface. Adding the mostly non-existing documentation for feaures and interfaces completes in my opinion the nightmare.

                                        Do you know if you can use plugins the other way around (e.g. 3.6 plugins in 4.2)?
                                        Respectively, can you mix MinGW plugins with VS plugins?
                                        The latter one is probably killed by incompatibility of different compilers, or is that assumption wrong?

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

                                        mrjjM 1 Reply Last reply
                                        0
                                        • K koahnig

                                          @mrjj

                                          I doubt that creator 3.6 can load plugins of version 4.2.1.

                                          I had wasted a while ago my time with enhancing the doxygen plugin. My rational was that at least I can use while doing a complete compilation of creator with all plugins. However, I had found out that another plugin, which I was relying on, changed interface. Adding the mostly non-existing documentation for feaures and interfaces completes in my opinion the nightmare.

                                          Do you know if you can use plugins the other way around (e.g. 3.6 plugins in 4.2)?
                                          Respectively, can you mix MinGW plugins with VS plugins?
                                          The latter one is probably killed by incompatibility of different compilers, or is that assumption wrong?

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

                                          @koahnig
                                          yes i assume only minor version will work.
                                          I have 2 creators installed currently. seems to work.
                                          Im not sure how compatible the plugins are but going to try an older creator:)

                                          We cannot use mingw plugins unless creator is compiled with mingw. I made such version to make
                                          testing Designer plugins easier. but to run in the normal creator it must be compiled with vs 2013 or 2015 for 5.8

                                          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