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. Qt 6.3.1 painful....
Forum Updated to NodeBB v4.3 + New Features

Qt 6.3.1 painful....

Scheduled Pinned Locked Moved Unsolved General and Desktop
31 Posts 5 Posters 4.1k Views 2 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.
  • D DerReisende

    @SPlatten I am not sure if QMAKE_MAC_SDK_VERSION is the correct way to set the macos minimum sdk version during compilation. But I have to admit that I dont use qmake. A quick search gave me this thread which may be more correct to specify the target sdk for compilation.

    Did you compile and run the project with -fsanitize=thread compiler option`?

    SPlattenS Offline
    SPlattenS Offline
    SPlatten
    wrote on last edited by
    #18

    @DerReisende Thank you, I want to keep using the .pro file if possible so I will look for a MIN version of the directive.

    Kind Regards,
    Sy

    1 Reply Last reply
    0
    • SPlattenS Offline
      SPlattenS Offline
      SPlatten
      wrote on last edited by SPlatten
      #19

      I'm not sure I am winning this battle Qt 6.3.1 on my MacBook Pro Apple M1 is not going anywhere fast.

      My application is multi-threaded, when I run the application it is halting in (__pthread_kill) showing a window containing nothing but hex, the stack trade showing in Test Results panel contains:

                                                                                                                                                                                                                                          
                                                                                                                                                                                                                                          
      1  __pthread_kill                                                                                                               (arm64e) /usr/lib/system/libsystem_kernel.dylib                                         0x185b2ed98 
      2  pthread_kill                                                                                                                 (arm64e) /usr/lib/system/libsystem_pthread.dylib                                        0x185b63ee0 
      3  abort                                                                                                                        (arm64e) /usr/lib/system/libsystem_c.dylib                                              0x185a9e340 
      4  malloc_vreport                                                                                                               (arm64e) /usr/lib/system/libsystem_malloc.dylib                                         0x1859808c0 
      5  malloc_zone_error                                                                                                            (arm64e) /usr/lib/system/libsystem_malloc.dylib                                         0x185995c84 
      6  nanov2_allocate_from_block                                                                                                   (arm64e) /usr/lib/system/libsystem_malloc.dylib                                         0x185972bc4 
      7  nanov2_allocate                                                                                                              (arm64e) /usr/lib/system/libsystem_malloc.dylib                                         0x1859721e0 
      8  nanov2_calloc                                                                                                                (arm64e) /usr/lib/system/libsystem_malloc.dylib                                         0x18597437c 
      9  _malloc_zone_calloc                                                                                                          (arm64e) /usr/lib/system/libsystem_malloc.dylib                                         0x18598f840 
      10 class_createInstance                                                                                                         (arm64e) /usr/lib/libobjc.A.dylib                                                       0x1859ea404 
      11 _os_object_alloc_realized                                                                                                    (arm64e) /usr/lib/system/libdispatch.dylib                                              0x18599f568 
      12 _xpc_dictionary_deserialize                                                                                                  (arm64e) /usr/lib/system/libxpc.dylib                                                   0x1858982d0 
      13 _xpc_array_deserialize                                                                                                       (arm64e) /usr/lib/system/libxpc.dylib                                                   0x1858981ec 
      14 _xpc_dictionary_unpack_value                                                                                                 (arm64e) /usr/lib/system/libxpc.dylib                                                   0x185893fc0 
      15 _xpc_dictionary_unpack_value_and_vend                                                                                        (arm64e) /usr/lib/system/libxpc.dylib                                                   0x185895424 
      16 _xpc_dictionary_look_up                                                                                                      (arm64e) /usr/lib/system/libxpc.dylib                                                   0x18588fe8c 
      17 -[CFPrefsSearchListSource handleReply:toRequestNewDataMessage:onConnection:retryCount:error:]                                (arm64e) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation  0x185be46a4 
      18 __80-[CFPrefsSearchListSource alreadylocked_generationCountFromListOfSources:count:]_block_invoke                            (arm64e) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation  0x185be45a8 
      19 __104-[CFPrefsSearchListSource synchronouslySendDaemonMessage:andAgentMessage:andDirectMessage:replyHandler:]_block_invoke_2 (arm64e) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation  0x185be4540 
      20 -[_CFXPreferences withConnectionForRole:performBlock:]                                                                       (arm64e) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation  0x185be4100 
      21 __104-[CFPrefsSearchListSource synchronouslySendDaemonMessage:andAgentMessage:andDirectMessage:replyHandler:]_block_invoke   (arm64e) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation  0x185be40a4 
      22 _dispatch_client_callout2                                                                                                    (arm64e) /usr/lib/system/libdispatch.dylib                                              0x1859a01f4 
      23 _dispatch_apply_invoke                                                                                                       (arm64e) /usr/lib/system/libdispatch.dylib                                              0x1859b3954 
      24 _dispatch_client_callout                                                                                                     (arm64e) /usr/lib/system/libdispatch.dylib                                              0x1859a01b4 
      25 _dispatch_root_queue_drain                                                                                                   (arm64e) /usr/lib/system/libdispatch.dylib                                              0x1859b1a04 
      26 _dispatch_worker_thread2                                                                                                     (arm64e) /usr/lib/system/libdispatch.dylib                                              0x1859b2104 
      27 _pthread_wqthread                                                                                                            (arm64e) /usr/lib/system/libsystem_pthread.dylib                                        0x185b60324 
      
      

      Kind Regards,
      Sy

      1 Reply Last reply
      0
      • JoeCFDJ Offline
        JoeCFDJ Offline
        JoeCFD
        wrote on last edited by
        #20

        I guess you are able to use c++20 now. Adding logging code into your threads may enable you to find issues more quickly.
        https://mariusbancila.ro/blog/2021/07/03/writing-a-simple-logging-function-in-c20/

        D 1 Reply Last reply
        0
        • JoeCFDJ JoeCFD

          I guess you are able to use c++20 now. Adding logging code into your threads may enable you to find issues more quickly.
          https://mariusbancila.ro/blog/2021/07/03/writing-a-simple-logging-function-in-c20/

          D Offline
          D Offline
          DerReisende
          wrote on last edited by
          #21

          @JoeCFD You don't need c++20 to do that, QMessageLogContext does give you the same information if you install a proper message handler:

          static void qt_message_handler(QtMsgType type, [[maybe_unused]] const QMessageLogContext &context, const QString &msg) {
              const QByteArray localMsg = msg.toLocal8Bit();
          #ifdef NDEBUG
              const auto out_msg = fmt::format("\t{}", localMsg.constData());
          #else
              const char *function = context.function ? context.function : "";
              const auto out_msg = fmt::format("\t{} [LINE:{}, {}]",
                                                localMsg.constData(),
                                                context.line,
                                                function);
          #endif
              switch (type) {
                  case QtDebugMsg:
                      spdlog::debug(out_msg);
                      break;
                  case QtInfoMsg:
                      spdlog::info(out_msg);
                      break;
                  case QtWarningMsg:
                      spdlog::warn(out_msg);
                      break;
                  case QtCriticalMsg:
                      spdlog::error(out_msg);
                      break;
                  case QtFatalMsg:
                      spdlog::critical(out_msg);
                      spdlog::shutdown();
                      break;
              }
          }
          
          void init_logging() {
              init_spdlog();
          
              qInstallMessageHandler(qt_message_handler);
          } 
          

          I am using spdlog and fmt::format for logging and formatting but in the end you will get almost the same details for all Qt logging calls as with your example.

          SPlattenS JoeCFDJ 2 Replies Last reply
          0
          • D DerReisende

            @JoeCFD You don't need c++20 to do that, QMessageLogContext does give you the same information if you install a proper message handler:

            static void qt_message_handler(QtMsgType type, [[maybe_unused]] const QMessageLogContext &context, const QString &msg) {
                const QByteArray localMsg = msg.toLocal8Bit();
            #ifdef NDEBUG
                const auto out_msg = fmt::format("\t{}", localMsg.constData());
            #else
                const char *function = context.function ? context.function : "";
                const auto out_msg = fmt::format("\t{} [LINE:{}, {}]",
                                                  localMsg.constData(),
                                                  context.line,
                                                  function);
            #endif
                switch (type) {
                    case QtDebugMsg:
                        spdlog::debug(out_msg);
                        break;
                    case QtInfoMsg:
                        spdlog::info(out_msg);
                        break;
                    case QtWarningMsg:
                        spdlog::warn(out_msg);
                        break;
                    case QtCriticalMsg:
                        spdlog::error(out_msg);
                        break;
                    case QtFatalMsg:
                        spdlog::critical(out_msg);
                        spdlog::shutdown();
                        break;
                }
            }
            
            void init_logging() {
                init_spdlog();
            
                qInstallMessageHandler(qt_message_handler);
            } 
            

            I am using spdlog and fmt::format for logging and formatting but in the end you will get almost the same details for all Qt logging calls as with your example.

            SPlattenS Offline
            SPlattenS Offline
            SPlatten
            wrote on last edited by SPlatten
            #22

            @DerReisende , thank you, I've done this already for several years, here is the output to my log file:

            XMLMPAM start-up
            Listening to any local IP address on port: 8123
            S000000000003E000000000374T09:56:43.345T:DL00004842P../clsMainWnd.cpp[void clsXMLnode::update]
            "Node:label ID:lbl1 X:12 Y:261 W:100 H:30 Text:<a href=\"http://google.com\" style=\"color:#000000;text-decoration:none;\">Google</a>:"
            S000000000004E000000000407T09:56:43.378T:DL00003985P../clsMainWnd.cpp[static clsXMLnode *clsXMLnode::spobjParse]
            "label"
            S000000000005E000000000408T09:56:43.379T:DL00004842P../clsMainWnd.cpp[void clsXMLnode::update]
            "Node:label ID:lbl1 X:12 Y:261 W:100 H:30 Text:<a href=\"http://google.com\" style=\"color:#000000;text-decoration:none;\">Google</a>:"
            S000000000006E000000000408T09:56:43.379T:D:"Node:label ID:lbl1 X:12 Y:261 W:100 H:30 Text:<a href=\"http://google.com\" style=\"color:#000000;text-decoration:none;\">Google</a>:"
            S000000000007E000000007037T09:56:50.008T:DL00000798P../clsMainWnd.cpp[clsXMLnode::clsXMLnode]
            "test99"
            S000000000008E000000007037T09:56:50.008T:DL00003985P../clsMainWnd.cpp[static clsXMLnode *clsXMLnode::spobjParse]
            "label"
            S000000000009E000000007104T09:56:50.075T:D:"label"
            S000000000010E000000007113T09:56:50.084T:D:"label"
            S000000000011E000000007128T09:56:50.099T:D:"label"
            Process:  Arg[0]: 8123
            Process:  Arg[1]: 8124
            Process:  Arg[2]: 24150
            Process:  Arg[3]: f1
            Process is NOT running, launching
            S000000000014E000000007171T09:56:50.142T:DL00000553P../clsModule.cpp[void clsModule::setProgram]
            Starting: f1:mdFIO
            Registering decoder for file simon.js, function: blnDecodeFIOcmd
            Process:  Arg[0]: 8123
            Process:  Arg[1]: 8125
            Process:  Arg[2]: 24150
            Process:  Arg[3]: s1
            Process is NOT running, launching
            S000000000018E000000007177T09:56:50.148T:D:Starting: s1:mdSQL
            Registering decoder for file simon.js, function: blnDecodeSQLcmd
            Process:  Arg[0]: 8123
            Process:  Arg[1]: 8126
            Process:  Arg[2]: 24150
            Process:  Arg[3]: x1
            Process is NOT running, launching
            S000000000022E000000007182T09:56:50.153T:D:Starting: x1:mdXML
            Registering decoder for file simon.js, function: blnDecodeXMLcmd
            S000000000024E000000007234T09:56:50.205T:DL00000571P../clsModule.cpp[auto clsModule::setProgram]
            PID for mdXML: 24171, On port: 8123
            Process:  mdXML started
            S000000000026E000000007234T09:56:50.205T:D:PID for mdFIO: 24165, On port: 8123
            Process:  mdFIO started
            S000000000028E000000007234T09:56:50.205T:D:PID for mdSQL: 24168, On port: 8123
            Process:  mdSQL started
            Client connecting...
            Client connecting...
            Client connecting...
            Client connected
            Client connected
            Client connected
            !s1!Client connecting...
            !s1!Client connected
            !f1!Client connecting...
            !f1!Client connected
            !x1!Client connecting...
            !x1!Client connected
            !f1!S000000000042E000000000131T09:56:50.347DL00000731F../mdFIO/clsModFIO.cpp[void clsModFIO::doComm
            !f1!S000000000042E000000000131T09:56:50.347DL00000731F../mdFIO/clsModFIO.cpp[void clsModFIO::doCommand]
            2022-08-17 08:56:50,  Command#1: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
            !f1!S000000000043E000000000131T09:56:50.347D:Length
            !f1!S000000000043E000000000131T09:56:50.347D:Length: 1
            !f1!S000000000044E000000000131T09:56:50.347D:2022-08
            !f1!S000000000044E000000000131T09:56:50.347D:2022-08-17 08:56:50,  Command#2: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
            !f1!S000000000045E000000000131T09:56:50.347D:Length
            !f1!S000000000045E000000000131T09:56:50.347D:Length: 2
            !f1!S000000000046E000000000131T09:56:50.347D:2022-08
            !f1!S000000000046E000000000131T09:56:50.347D:2022-08-17 08:56:50,  Command#3: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
            !f1!S000000000047E000000000131T09:56:50.347D:Length
            !f1!S000000000047E000000000131T09:56:50.347D:Length: 4
            !f1!S000000000048E000000000131T09:56:50.348D:2022-08
            !f1!S000000000048E000000000131T09:56:50.348D:2022-08-17 08:56:50,  Command#4: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
            !f1!S000000000049E000000000131T09:56:50.348D:Length
            !f1!S000000000049E000000000131T09:56:50.348D:Length: 8
            !f1!S000000000050E000000000131T09:56:50.348D:2022-08
            !f1!S000000000050E000000000131T09:56:50.348D:2022-08-17 08:56:50,  Command#5: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
            !f1!S000000000051E000000000131T09:56:50.348D:Length
            !f1!S000000000051E000000000131T09:56:50.348D:Length: 4
            !f1!S000000000052E000000000131T09:56:50.348D:2022-08
            !f1!S000000000052E000000000131T09:56:50.348D:2022-08-17 08:56:50,  Command#6: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
            !f1!S000000000053E000000000131T09:56:50.348D:Length
            !f1!S000000000053E000000000131T09:56:50.348D:Length: 8
            !f1!S000000000054E000000000132T09:56:50.348D:2022-08
            !f1!S000000000054E000000000132T09:56:50.348D:2022-08-17 08:56:50,  Command#7: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
            !f1!S000000000055E000000000132T09:56:50.348D:Length
            !f1!S000000000055E000000000132T09:56:50.348D:Length: 27
            !f1!S000000000056E000000000132T09:56:50.348D:2022-08
            !f1!S000000000056E000000000132T09:56:50.348D:2022-08-17 08:56:50,  Command#8: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
            !f1!S000000000057E000000000132T09:56:50.348D:Length
            !f1!S000000000057E000000000132T09:56:50.348D:Length: 1
            !f1!S000000000058E000000000132T09:56:50.348D:2022-08
            !f1!S000000000058E000000000132T09:56:50.348D:2022-08-17 08:56:50,  Command#9: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
            !f1!S000000000059E000000000132T09:56:50.348D:Length
            !f1!S000000000059E000000000132T09:56:50.348D:Length: 2
            !f1!S000000000060E000000000132T09:56:50.348D:2022-08
            !f1!S000000000060E000000000132T09:56:50.348D:2022-08-17 08:56:50,  Command#10: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
            !f1!S000000000061E000000000132T09:56:50.348D:Length
            !f1!S000000000061E000000000132T09:56:50.348D:Length: 4
            !f1!S000000000062E000000000132T09:56:50.348D:2022-08
            !f1!S000000000062E000000000132T09:56:50.348D:2022-08-17 08:56:50,  Command#11: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
            !f1!S000000000063E000000000132T09:56:50.348D:Length
            !f1!S000000000063E000000000132T09:56:50.348D:Length: 8
            !f1!S000000000064E000000000132T09:56:50.348D:2022-08
            !f1!S000000000064E000000000132T09:56:50.348D:2022-08-17 08:56:50,  Command#12: find, File: /Users/sy/XMLMPAM/config/test.dat, Mode: r
            !f1!S000000000065E000000000132T09:56:50.348D:Length
            !f1!S000000000065E000000000132T09:56:50.348D:Length: 18446744073709551615
            !f1!S000000000066E000000000132T09:56:50.349D:2022-08
            !f1!S000000000066E000000000132T09:56:50.349D:2022-08-17 08:56:50,  Command#13: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rt
            !f1!S000000000067E000000000132T09:56:50.349D:Length
            !f1!S000000000067E000000000132T09:56:50.349D:Length: 3
            !f1!S000000000068E000000000132T09:56:50.349D:2022-08
            !f1!S000000000068E000000000132T09:56:50.349D:2022-08-17 08:56:50,  Command#14: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rt
            !f1!S000000000069E000000000132T09:56:50.349D:Length
            !f1!S000000000069E000000000132T09:56:50.349D:Length: 4
            !f1!S000000000070E000000000132T09:56:50.349D:2022-08
            !f1!S000000000070E000000000132T09:56:50.349D:2022-08-17 08:56:50,  Command#15: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rt
            !f1!S000000000071E000000000132T09:56:50.349D:Positio
            !f1!S000000000071E000000000132T09:56:50.349D:Position: -15
            !f1!S000000000072E000000000133T09:56:50.349D:Length
            !f1!S000000000072E000000000133T09:56:50.349D:Length: 5
            !f1!S000000000073E000000000133T09:56:50.349D:2022-08
            !f1!S000000000073E000000000133T09:56:50.349D:2022-08-17 08:56:50,  Command#16: tell, File: /Users/sy/XMLMPAM/config/test.dat, Mode: r
            !f1!S000000000074E000000000133T09:56:50.349D:Length
            !f1!S000000000074E000000000133T09:56:50.349D:Length: 18446744073709551615
            !s1!S000000000008E000000000137T09:56:50.343DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
            !s1!S000000000008E000000000137T09:56:50.343DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
            {"command":"connect","params":{"database":"test","driver":"QMYSQL","host":"localhost","pass":"resuocra","usr":"root"}}
            !s1!S000000000009E000000000179T09:56:50.384DL00000212F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
            !s1!S000000000009E000000000179T09:56:50.384DL00000212F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
            {"command":"connect","output":"connected"}
            S000000000036E000000007753T09:56:50.724T:W:QObject: Cannot create children for a parent that is in a different thread.
            (Parent is QNativeSocketEngine(0x600000012910), parent's thread is clsServer(0x600000257fc0), current thread is clsThread(0x600002c2a000)
            !s1!S000000000010E000000000519T09:56:50.724DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
            !s1!S000000000010E000000000519T09:56:50.724DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
            {"addrTo":"s1","args":[2],"command":"query","handler":"simon2.js@testFormHandler","msgType":"notify","source":"XMLMPAM","sql":"SELECT * FROM test.tblForm LIMIT ?;"}
            !s1!S000000000011E000000000521T09:56:50.726DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
            !s1!S000000000011E000000000521T09:56:50.726DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
            {"command":"query","handler":"simon2.js@testFormHandler","output":"connected","records":[{"intEmployed":"1","intPri":"1","vcAddress":"Latona House\nStation Road\nCantley\nNorfolk\nNR13 3SQ","vcFirstName":"Simon","vcSex":"Male","vcSurName":"Platten"},{"intEmployed":"1","intPri":"2","vcAddress":"Latona House\nStation Road\nCantley\nNorfolk\nNR13 3SQ","vcFirstName":"Susan","vcSex":"Female","vcSurName":"Platten"}]}
            !s1!S000000000012E000000000781T09:56:50.987DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
            !s1!S000000000012E000000000781T09:56:50.987DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
            {"addrTo":"s1","args":[2],"command":"query","handler":"simon2.js@testFormHandler","msgType":"notify","source":"XMLMPAM","sql":"SELECT * FROM test.tblForm WHERE intPri NOT IN(1,2) LIMIT ?;"}
            !s1!S000000000013E000000000782T09:56:50.987DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
            !s1!S000000000013E000000000782T09:56:50.987DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
            {"command":"query","handler":"simon2.js@testFormHandler","output":"connected"}
            !s1!S000000000014E000000001044T09:56:51.249DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
            !s1!S000000000014E000000001044T09:56:51.249DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
            {"addrTo":"s1","args":[2],"command":"query","handler":"simon2.js@testFormHandler","msgType":"notify","source":"XMLMPAM","sql":"SELECT * FROM test.tblForm WHERE intPri NOT IN(1,2) LIMIT ?;"}
            !s1!S000000000015E000000001044T09:56:51.249DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
            !s1!S000000000015E000000001044T09:56:51.249DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
            {"command":"query","handler":"simon2.js@testFormHandler","output":"connected"}
            !s1!S000000000016E000000001304T09:56:51.510DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
            !s1!S000000000016E000000001304T09:56:51.510DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
            {"addrTo":"s1","args":[2],"command":"query","handler":"simon2.js@testFormHandler","msgType":"notify","source":"XMLMPAM","sql":"SELECT * FROM test.tblForm WHERE intPri NOT IN(1,2) LIMIT ?;"}
            !s1!S000000000017E000000001305T09:56:51.510DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
            !s1!S000000000017E000000001305T09:56:51.510DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
            {"command":"query","handler":"simon2.js@testFormHandler","output":"connected"}
            !s1!S000000000018E000000001562T09:56:51.767DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
            !s1!S000000000018E000000001562T09:56:51.767DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
            {"addrTo":"s1","args":[2],"command":"query","handler":"simon2.js@testFormHandler","msgType":"notify","source":"XMLMPAM","sql":"SELECT * FROM test.tblForm WHERE intPri NOT IN(1,2) LIMIT ?;"}
            !s1!S000000000019E000000001562T09:56:51.768DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
            !s1!S000000000019E000000001562T09:56:51.768DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
            {"command":"query","handler":"simon2.js@testFormHandler","output":"connected"}
            !s1!S000000000020E000000001812T09:56:52.017DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
            !s1!S000000000020E000000001812T09:56:52.017DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
            {"addrTo":"s1","args":[2],"command":"query","handler":"simon2.js@testFormHandler","msgType":"notify","source":"XMLMPAM","sql":"SELECT * FROM test.tblForm WHERE intPri NOT IN(1,2) LIMIT ?;"}
            !s1!S000000000021E000000001812T09:56:52.017DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
            !s1!S000000000021E000000001812T09:56:52.017DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
            {"command":"query","handler":"simon2.js@testFormHandler","output":"connected"}
            S000000000037E000000009157T09:56:52.128T:W:QObject: Cannot create children for a parent that is in a different thread.
            (Parent is QNativeSocketEngine(0x600000025290), parent's thread is clsServer(0x600000255400), current thread is clsThread(0x600002c2a000)
            S000000000038E000000009158T09:56:52.129T:W:QObject: Cannot create children for a parent that is in a different thread.
            (Parent is QNativeSocketEngine(0x6000000196e0), parent's thread is clsServer(0x600000256f60), current thread is clsThread(0x600002c2a000)
            

            Where:
            S is the sequence number
            E is the elapsed time
            T is the time stamp
            T:C Type:Critical warning
            T:D Type:Debug message
            T:F Type:Fatal error
            T:W Type:Warning
            L is the line number
            P is the path and file name

            This is what is shown in the Application Output which suggests the issue is generated during the initialisation of QApplication.

            
            10:04:03: Debugging /Users/sy/XMLMPAM/build-XMLMPAM-Desktop_Qt_5_15_2_clang_64bit-Debug/XMLMPAM.app/Contents/MacOS/XMLMPAM ~/XMLMPAM/config/xmlmpam ...
            
            got fallback qt version 0x50f02
            2022-08-17 10:04:08.921420+0100 XMLMPAM[24714:211122] SecTaskLoadEntitlements failed error=22 cs_flags=20, pid=24714
            2022-08-17 10:04:08.921503+0100 XMLMPAM[24714:211122] SecTaskCopyDebugDescription: XMLMPAM[24714]/0#-1 LF=0
            2022-08-17 10:04:09.414338+0100 XMLMPAM[24714:211122] SecTaskLoadEntitlements failed error=22 cs_flags=20, pid=24714
            2022-08-17 10:04:09.414418+0100 XMLMPAM[24714:211122] SecTaskCopyDebugDescription: XMLMPAM[24714]/0#-1 LF=0
            

            Found this:
            https://apple.stackexchange.com/questions/237465/what-means-sectaskloadentlitlements-failed-error-22

            Kind Regards,
            Sy

            D 1 Reply Last reply
            0
            • D DerReisende

              @JoeCFD You don't need c++20 to do that, QMessageLogContext does give you the same information if you install a proper message handler:

              static void qt_message_handler(QtMsgType type, [[maybe_unused]] const QMessageLogContext &context, const QString &msg) {
                  const QByteArray localMsg = msg.toLocal8Bit();
              #ifdef NDEBUG
                  const auto out_msg = fmt::format("\t{}", localMsg.constData());
              #else
                  const char *function = context.function ? context.function : "";
                  const auto out_msg = fmt::format("\t{} [LINE:{}, {}]",
                                                    localMsg.constData(),
                                                    context.line,
                                                    function);
              #endif
                  switch (type) {
                      case QtDebugMsg:
                          spdlog::debug(out_msg);
                          break;
                      case QtInfoMsg:
                          spdlog::info(out_msg);
                          break;
                      case QtWarningMsg:
                          spdlog::warn(out_msg);
                          break;
                      case QtCriticalMsg:
                          spdlog::error(out_msg);
                          break;
                      case QtFatalMsg:
                          spdlog::critical(out_msg);
                          spdlog::shutdown();
                          break;
                  }
              }
              
              void init_logging() {
                  init_spdlog();
              
                  qInstallMessageHandler(qt_message_handler);
              } 
              

              I am using spdlog and fmt::format for logging and formatting but in the end you will get almost the same details for all Qt logging calls as with your example.

              JoeCFDJ Offline
              JoeCFDJ Offline
              JoeCFD
              wrote on last edited by
              #23

              @DerReisende the log function in C++ 20 seems simpler. I use both spdlog and Qt logger.

              D 1 Reply Last reply
              0
              • SPlattenS SPlatten

                @DerReisende , thank you, I've done this already for several years, here is the output to my log file:

                XMLMPAM start-up
                Listening to any local IP address on port: 8123
                S000000000003E000000000374T09:56:43.345T:DL00004842P../clsMainWnd.cpp[void clsXMLnode::update]
                "Node:label ID:lbl1 X:12 Y:261 W:100 H:30 Text:<a href=\"http://google.com\" style=\"color:#000000;text-decoration:none;\">Google</a>:"
                S000000000004E000000000407T09:56:43.378T:DL00003985P../clsMainWnd.cpp[static clsXMLnode *clsXMLnode::spobjParse]
                "label"
                S000000000005E000000000408T09:56:43.379T:DL00004842P../clsMainWnd.cpp[void clsXMLnode::update]
                "Node:label ID:lbl1 X:12 Y:261 W:100 H:30 Text:<a href=\"http://google.com\" style=\"color:#000000;text-decoration:none;\">Google</a>:"
                S000000000006E000000000408T09:56:43.379T:D:"Node:label ID:lbl1 X:12 Y:261 W:100 H:30 Text:<a href=\"http://google.com\" style=\"color:#000000;text-decoration:none;\">Google</a>:"
                S000000000007E000000007037T09:56:50.008T:DL00000798P../clsMainWnd.cpp[clsXMLnode::clsXMLnode]
                "test99"
                S000000000008E000000007037T09:56:50.008T:DL00003985P../clsMainWnd.cpp[static clsXMLnode *clsXMLnode::spobjParse]
                "label"
                S000000000009E000000007104T09:56:50.075T:D:"label"
                S000000000010E000000007113T09:56:50.084T:D:"label"
                S000000000011E000000007128T09:56:50.099T:D:"label"
                Process:  Arg[0]: 8123
                Process:  Arg[1]: 8124
                Process:  Arg[2]: 24150
                Process:  Arg[3]: f1
                Process is NOT running, launching
                S000000000014E000000007171T09:56:50.142T:DL00000553P../clsModule.cpp[void clsModule::setProgram]
                Starting: f1:mdFIO
                Registering decoder for file simon.js, function: blnDecodeFIOcmd
                Process:  Arg[0]: 8123
                Process:  Arg[1]: 8125
                Process:  Arg[2]: 24150
                Process:  Arg[3]: s1
                Process is NOT running, launching
                S000000000018E000000007177T09:56:50.148T:D:Starting: s1:mdSQL
                Registering decoder for file simon.js, function: blnDecodeSQLcmd
                Process:  Arg[0]: 8123
                Process:  Arg[1]: 8126
                Process:  Arg[2]: 24150
                Process:  Arg[3]: x1
                Process is NOT running, launching
                S000000000022E000000007182T09:56:50.153T:D:Starting: x1:mdXML
                Registering decoder for file simon.js, function: blnDecodeXMLcmd
                S000000000024E000000007234T09:56:50.205T:DL00000571P../clsModule.cpp[auto clsModule::setProgram]
                PID for mdXML: 24171, On port: 8123
                Process:  mdXML started
                S000000000026E000000007234T09:56:50.205T:D:PID for mdFIO: 24165, On port: 8123
                Process:  mdFIO started
                S000000000028E000000007234T09:56:50.205T:D:PID for mdSQL: 24168, On port: 8123
                Process:  mdSQL started
                Client connecting...
                Client connecting...
                Client connecting...
                Client connected
                Client connected
                Client connected
                !s1!Client connecting...
                !s1!Client connected
                !f1!Client connecting...
                !f1!Client connected
                !x1!Client connecting...
                !x1!Client connected
                !f1!S000000000042E000000000131T09:56:50.347DL00000731F../mdFIO/clsModFIO.cpp[void clsModFIO::doComm
                !f1!S000000000042E000000000131T09:56:50.347DL00000731F../mdFIO/clsModFIO.cpp[void clsModFIO::doCommand]
                2022-08-17 08:56:50,  Command#1: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
                !f1!S000000000043E000000000131T09:56:50.347D:Length
                !f1!S000000000043E000000000131T09:56:50.347D:Length: 1
                !f1!S000000000044E000000000131T09:56:50.347D:2022-08
                !f1!S000000000044E000000000131T09:56:50.347D:2022-08-17 08:56:50,  Command#2: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
                !f1!S000000000045E000000000131T09:56:50.347D:Length
                !f1!S000000000045E000000000131T09:56:50.347D:Length: 2
                !f1!S000000000046E000000000131T09:56:50.347D:2022-08
                !f1!S000000000046E000000000131T09:56:50.347D:2022-08-17 08:56:50,  Command#3: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
                !f1!S000000000047E000000000131T09:56:50.347D:Length
                !f1!S000000000047E000000000131T09:56:50.347D:Length: 4
                !f1!S000000000048E000000000131T09:56:50.348D:2022-08
                !f1!S000000000048E000000000131T09:56:50.348D:2022-08-17 08:56:50,  Command#4: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
                !f1!S000000000049E000000000131T09:56:50.348D:Length
                !f1!S000000000049E000000000131T09:56:50.348D:Length: 8
                !f1!S000000000050E000000000131T09:56:50.348D:2022-08
                !f1!S000000000050E000000000131T09:56:50.348D:2022-08-17 08:56:50,  Command#5: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
                !f1!S000000000051E000000000131T09:56:50.348D:Length
                !f1!S000000000051E000000000131T09:56:50.348D:Length: 4
                !f1!S000000000052E000000000131T09:56:50.348D:2022-08
                !f1!S000000000052E000000000131T09:56:50.348D:2022-08-17 08:56:50,  Command#6: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
                !f1!S000000000053E000000000131T09:56:50.348D:Length
                !f1!S000000000053E000000000131T09:56:50.348D:Length: 8
                !f1!S000000000054E000000000132T09:56:50.348D:2022-08
                !f1!S000000000054E000000000132T09:56:50.348D:2022-08-17 08:56:50,  Command#7: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
                !f1!S000000000055E000000000132T09:56:50.348D:Length
                !f1!S000000000055E000000000132T09:56:50.348D:Length: 27
                !f1!S000000000056E000000000132T09:56:50.348D:2022-08
                !f1!S000000000056E000000000132T09:56:50.348D:2022-08-17 08:56:50,  Command#8: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
                !f1!S000000000057E000000000132T09:56:50.348D:Length
                !f1!S000000000057E000000000132T09:56:50.348D:Length: 1
                !f1!S000000000058E000000000132T09:56:50.348D:2022-08
                !f1!S000000000058E000000000132T09:56:50.348D:2022-08-17 08:56:50,  Command#9: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
                !f1!S000000000059E000000000132T09:56:50.348D:Length
                !f1!S000000000059E000000000132T09:56:50.348D:Length: 2
                !f1!S000000000060E000000000132T09:56:50.348D:2022-08
                !f1!S000000000060E000000000132T09:56:50.348D:2022-08-17 08:56:50,  Command#10: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
                !f1!S000000000061E000000000132T09:56:50.348D:Length
                !f1!S000000000061E000000000132T09:56:50.348D:Length: 4
                !f1!S000000000062E000000000132T09:56:50.348D:2022-08
                !f1!S000000000062E000000000132T09:56:50.348D:2022-08-17 08:56:50,  Command#11: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rb
                !f1!S000000000063E000000000132T09:56:50.348D:Length
                !f1!S000000000063E000000000132T09:56:50.348D:Length: 8
                !f1!S000000000064E000000000132T09:56:50.348D:2022-08
                !f1!S000000000064E000000000132T09:56:50.348D:2022-08-17 08:56:50,  Command#12: find, File: /Users/sy/XMLMPAM/config/test.dat, Mode: r
                !f1!S000000000065E000000000132T09:56:50.348D:Length
                !f1!S000000000065E000000000132T09:56:50.348D:Length: 18446744073709551615
                !f1!S000000000066E000000000132T09:56:50.349D:2022-08
                !f1!S000000000066E000000000132T09:56:50.349D:2022-08-17 08:56:50,  Command#13: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rt
                !f1!S000000000067E000000000132T09:56:50.349D:Length
                !f1!S000000000067E000000000132T09:56:50.349D:Length: 3
                !f1!S000000000068E000000000132T09:56:50.349D:2022-08
                !f1!S000000000068E000000000132T09:56:50.349D:2022-08-17 08:56:50,  Command#14: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rt
                !f1!S000000000069E000000000132T09:56:50.349D:Length
                !f1!S000000000069E000000000132T09:56:50.349D:Length: 4
                !f1!S000000000070E000000000132T09:56:50.349D:2022-08
                !f1!S000000000070E000000000132T09:56:50.349D:2022-08-17 08:56:50,  Command#15: read, File: /Users/sy/XMLMPAM/config/test.dat, Mode: rt
                !f1!S000000000071E000000000132T09:56:50.349D:Positio
                !f1!S000000000071E000000000132T09:56:50.349D:Position: -15
                !f1!S000000000072E000000000133T09:56:50.349D:Length
                !f1!S000000000072E000000000133T09:56:50.349D:Length: 5
                !f1!S000000000073E000000000133T09:56:50.349D:2022-08
                !f1!S000000000073E000000000133T09:56:50.349D:2022-08-17 08:56:50,  Command#16: tell, File: /Users/sy/XMLMPAM/config/test.dat, Mode: r
                !f1!S000000000074E000000000133T09:56:50.349D:Length
                !f1!S000000000074E000000000133T09:56:50.349D:Length: 18446744073709551615
                !s1!S000000000008E000000000137T09:56:50.343DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
                !s1!S000000000008E000000000137T09:56:50.343DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
                {"command":"connect","params":{"database":"test","driver":"QMYSQL","host":"localhost","pass":"resuocra","usr":"root"}}
                !s1!S000000000009E000000000179T09:56:50.384DL00000212F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
                !s1!S000000000009E000000000179T09:56:50.384DL00000212F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
                {"command":"connect","output":"connected"}
                S000000000036E000000007753T09:56:50.724T:W:QObject: Cannot create children for a parent that is in a different thread.
                (Parent is QNativeSocketEngine(0x600000012910), parent's thread is clsServer(0x600000257fc0), current thread is clsThread(0x600002c2a000)
                !s1!S000000000010E000000000519T09:56:50.724DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
                !s1!S000000000010E000000000519T09:56:50.724DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
                {"addrTo":"s1","args":[2],"command":"query","handler":"simon2.js@testFormHandler","msgType":"notify","source":"XMLMPAM","sql":"SELECT * FROM test.tblForm LIMIT ?;"}
                !s1!S000000000011E000000000521T09:56:50.726DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
                !s1!S000000000011E000000000521T09:56:50.726DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
                {"command":"query","handler":"simon2.js@testFormHandler","output":"connected","records":[{"intEmployed":"1","intPri":"1","vcAddress":"Latona House\nStation Road\nCantley\nNorfolk\nNR13 3SQ","vcFirstName":"Simon","vcSex":"Male","vcSurName":"Platten"},{"intEmployed":"1","intPri":"2","vcAddress":"Latona House\nStation Road\nCantley\nNorfolk\nNR13 3SQ","vcFirstName":"Susan","vcSex":"Female","vcSurName":"Platten"}]}
                !s1!S000000000012E000000000781T09:56:50.987DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
                !s1!S000000000012E000000000781T09:56:50.987DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
                {"addrTo":"s1","args":[2],"command":"query","handler":"simon2.js@testFormHandler","msgType":"notify","source":"XMLMPAM","sql":"SELECT * FROM test.tblForm WHERE intPri NOT IN(1,2) LIMIT ?;"}
                !s1!S000000000013E000000000782T09:56:50.987DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
                !s1!S000000000013E000000000782T09:56:50.987DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
                {"command":"query","handler":"simon2.js@testFormHandler","output":"connected"}
                !s1!S000000000014E000000001044T09:56:51.249DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
                !s1!S000000000014E000000001044T09:56:51.249DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
                {"addrTo":"s1","args":[2],"command":"query","handler":"simon2.js@testFormHandler","msgType":"notify","source":"XMLMPAM","sql":"SELECT * FROM test.tblForm WHERE intPri NOT IN(1,2) LIMIT ?;"}
                !s1!S000000000015E000000001044T09:56:51.249DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
                !s1!S000000000015E000000001044T09:56:51.249DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
                {"command":"query","handler":"simon2.js@testFormHandler","output":"connected"}
                !s1!S000000000016E000000001304T09:56:51.510DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
                !s1!S000000000016E000000001304T09:56:51.510DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
                {"addrTo":"s1","args":[2],"command":"query","handler":"simon2.js@testFormHandler","msgType":"notify","source":"XMLMPAM","sql":"SELECT * FROM test.tblForm WHERE intPri NOT IN(1,2) LIMIT ?;"}
                !s1!S000000000017E000000001305T09:56:51.510DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
                !s1!S000000000017E000000001305T09:56:51.510DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
                {"command":"query","handler":"simon2.js@testFormHandler","output":"connected"}
                !s1!S000000000018E000000001562T09:56:51.767DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
                !s1!S000000000018E000000001562T09:56:51.767DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
                {"addrTo":"s1","args":[2],"command":"query","handler":"simon2.js@testFormHandler","msgType":"notify","source":"XMLMPAM","sql":"SELECT * FROM test.tblForm WHERE intPri NOT IN(1,2) LIMIT ?;"}
                !s1!S000000000019E000000001562T09:56:51.768DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
                !s1!S000000000019E000000001562T09:56:51.768DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
                {"command":"query","handler":"simon2.js@testFormHandler","output":"connected"}
                !s1!S000000000020E000000001812T09:56:52.017DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
                !s1!S000000000020E000000001812T09:56:52.017DL00000171F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
                {"addrTo":"s1","args":[2],"command":"query","handler":"simon2.js@testFormHandler","msgType":"notify","source":"XMLMPAM","sql":"SELECT * FROM test.tblForm WHERE intPri NOT IN(1,2) LIMIT ?;"}
                !s1!S000000000021E000000001812T09:56:52.017DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoC
                !s1!S000000000021E000000001812T09:56:52.017DL00000276F../mdSQL/clsModSQL.cpp[bool clsModSQL::blnDoCmd]
                {"command":"query","handler":"simon2.js@testFormHandler","output":"connected"}
                S000000000037E000000009157T09:56:52.128T:W:QObject: Cannot create children for a parent that is in a different thread.
                (Parent is QNativeSocketEngine(0x600000025290), parent's thread is clsServer(0x600000255400), current thread is clsThread(0x600002c2a000)
                S000000000038E000000009158T09:56:52.129T:W:QObject: Cannot create children for a parent that is in a different thread.
                (Parent is QNativeSocketEngine(0x6000000196e0), parent's thread is clsServer(0x600000256f60), current thread is clsThread(0x600002c2a000)
                

                Where:
                S is the sequence number
                E is the elapsed time
                T is the time stamp
                T:C Type:Critical warning
                T:D Type:Debug message
                T:F Type:Fatal error
                T:W Type:Warning
                L is the line number
                P is the path and file name

                This is what is shown in the Application Output which suggests the issue is generated during the initialisation of QApplication.

                
                10:04:03: Debugging /Users/sy/XMLMPAM/build-XMLMPAM-Desktop_Qt_5_15_2_clang_64bit-Debug/XMLMPAM.app/Contents/MacOS/XMLMPAM ~/XMLMPAM/config/xmlmpam ...
                
                got fallback qt version 0x50f02
                2022-08-17 10:04:08.921420+0100 XMLMPAM[24714:211122] SecTaskLoadEntitlements failed error=22 cs_flags=20, pid=24714
                2022-08-17 10:04:08.921503+0100 XMLMPAM[24714:211122] SecTaskCopyDebugDescription: XMLMPAM[24714]/0#-1 LF=0
                2022-08-17 10:04:09.414338+0100 XMLMPAM[24714:211122] SecTaskLoadEntitlements failed error=22 cs_flags=20, pid=24714
                2022-08-17 10:04:09.414418+0100 XMLMPAM[24714:211122] SecTaskCopyDebugDescription: XMLMPAM[24714]/0#-1 LF=0
                

                Found this:
                https://apple.stackexchange.com/questions/237465/what-means-sectaskloadentlitlements-failed-error-22

                D Offline
                D Offline
                DerReisende
                wrote on last edited by
                #24

                @SPlatten Then maybe this procedure might help you with qmake to get an entitlement running. Apart from networking I dont know what else you might need.
                With CMake it should be easier to add an entitlement to your qt app

                SPlattenS 1 Reply Last reply
                0
                • JoeCFDJ JoeCFD

                  @DerReisende the log function in C++ 20 seems simpler. I use both spdlog and Qt logger.

                  D Offline
                  D Offline
                  DerReisende
                  wrote on last edited by
                  #25

                  @JoeCFD Yes, your link looks simpler, I only wanted to highlight that you can get almost the same result if you want to stay with c++17.
                  And I am sort of reluctant to use c++20 as I got shot several times in the foot trying to compile code on macOS Xcode clang which was written on windows with VC++ :( XCode‘s clang seems to be not the most modern clang available and does lack quite some features available elsewhere.

                  JoeCFDJ 1 Reply Last reply
                  0
                  • D DerReisende

                    @JoeCFD Yes, your link looks simpler, I only wanted to highlight that you can get almost the same result if you want to stay with c++17.
                    And I am sort of reluctant to use c++20 as I got shot several times in the foot trying to compile code on macOS Xcode clang which was written on windows with VC++ :( XCode‘s clang seems to be not the most modern clang available and does lack quite some features available elsewhere.

                    JoeCFDJ Offline
                    JoeCFDJ Offline
                    JoeCFD
                    wrote on last edited by
                    #26

                    @DerReisende I am switching to Ubuntu 22 which has complete C++20 features and am looking forward to using more C++20 features in the hope of making code simpler and more organized. Linking more libs is often annoying. I prefer to use fewer third party libs. Version matching and compatibility are painful in deployment.

                    D 1 Reply Last reply
                    0
                    • D DerReisende

                      @SPlatten Then maybe this procedure might help you with qmake to get an entitlement running. Apart from networking I dont know what else you might need.
                      With CMake it should be easier to add an entitlement to your qt app

                      SPlattenS Offline
                      SPlattenS Offline
                      SPlatten
                      wrote on last edited by
                      #27

                      @DerReisende , I'm really not sure what the messages SecTaskLoadEntitlements mean or what action I need to take?

                      Kind Regards,
                      Sy

                      D 1 Reply Last reply
                      0
                      • SPlattenS SPlatten

                        @DerReisende , I'm really not sure what the messages SecTaskLoadEntitlements mean or what action I need to take?

                        D Offline
                        D Offline
                        DerReisende
                        wrote on last edited by
                        #28

                        @SPlatten The entitlement stuff should have no impact for local development but will be necessary for deployment to other machines later with the hardened runtime otherwise you might not get any network connectivity etc.
                        Do you still have those crashes from the beginning of the thread?

                        1 Reply Last reply
                        0
                        • JoeCFDJ JoeCFD

                          @DerReisende I am switching to Ubuntu 22 which has complete C++20 features and am looking forward to using more C++20 features in the hope of making code simpler and more organized. Linking more libs is often annoying. I prefer to use fewer third party libs. Version matching and compatibility are painful in deployment.

                          D Offline
                          D Offline
                          DerReisende
                          wrote on last edited by
                          #29

                          @JoeCFD If you gonna take a look here what c++20 features are supported by Apple's clang you are going to start crying and wishing you could have VC++ on macOS :D

                          J.HilkJ 1 Reply Last reply
                          0
                          • D DerReisende

                            @JoeCFD If you gonna take a look here what c++20 features are supported by Apple's clang you are going to start crying and wishing you could have VC++ on macOS :D

                            J.HilkJ Offline
                            J.HilkJ Offline
                            J.Hilk
                            Moderators
                            wrote on last edited by
                            #30

                            @DerReisende said in Qt 6.3.1 painful....:

                            wishing you could have VC++ on macOS :D

                            no-one wishes to use MSVC !🤪


                            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.

                            JoeCFDJ 1 Reply Last reply
                            0
                            • J.HilkJ J.Hilk

                              @DerReisende said in Qt 6.3.1 painful....:

                              wishing you could have VC++ on macOS :D

                              no-one wishes to use MSVC !🤪

                              JoeCFDJ Offline
                              JoeCFDJ Offline
                              JoeCFD
                              wrote on last edited by JoeCFD
                              #31

                              @J-Hilk I liked it although I do not use it for now. I think it is a good one. You can see VS is the first one to have implemented full C++20 features.

                              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