>&"p QCoreApplication::self\n" >~"$2 = (QCoreApplication *) 0x7fffffffe540\n" p (void*)&QCoreApplication::self\n" >~"$1 = (void *) 0x7ffff6eeb158 \n" ============================================== First QCoreApplication::instance() call 0 QCoreApplication::instance qcoreapplication.h 110 0x7ffff6947ab9 1 QLibraryInfoPrivate::findConfiguration qlibraryinfo.cpp 183 0x7ffff6946ad6 2 QLibraryInfo::platformPluginArguments qlibraryinfo.cpp 596 0x7ffff69475e9 3 init_platform qguiapplication.cpp 1017 0x7ffff6fe8635 4 QGuiApplicationPrivate::createPlatformIntegration qguiapplication.cpp 1177 0x7ffff6fe9956 5 QGuiApplicationPrivate::createEventDispatcher qguiapplication.cpp 1194 0x7ffff6fe9abf 6 QApplicationPrivate::createEventDispatcher qapplication.cpp 196 0x7ffff7743040 7 QCoreApplication::init qcoreapplication.cpp 766 0x7ffff6b888f8 8 QCoreApplication::QCoreApplication qcoreapplication.cpp 688 0x7ffff6b88663 9 QGuiApplication::QGuiApplication qguiapplication.cpp 570 0x7ffff6fe74c5 10 QApplication::QApplication qapplication.cpp 569 0x7ffff7743943 11 main main.cpp 50 0x4044b3 I switched to intel syntax because I can't read Motorola's 1 QLibraryInfoPrivate::findConfiguration qlibraryinfo.cpp 183 0x7ffff6946ad6 183 [1] if (QCoreApplication::instance()) { 0x7ffff6946ad1 <+0x0059> e8 df 0f 00 00 call 0x7ffff6947ab5 0x7ffff6946ad6 <+0x005e> 48 85 c0 test rax,rax 0x7ffff6946ad9 <+0x0061> 0f 95 c0 setne al 0x7ffff6946adc <+0x0064> 84 c0 test al,al 0x7ffff6946ade <+0x0066> 0f 84 ec 00 00 00 je 0x7ffff6946bd0 0 QCoreApplication::instance qcoreapplication.h 110 0x7ffff6947ab9 110 [1] static QCoreApplication *instance() { return self; } 0x7ffff6947ab5 55 push rbp 0x7ffff6947ab6 <+0x0001> 48 89 e5 mov rbp,rsp 0x7ffff6947ab9 <+0x0004> 48 8b 05 40 5d 59 00 mov rax,QWORD PTR [rip+0x595d40] # 0x7ffff6edd800 # rax = 0x7ffff6eeb158 -- same as &QCoreApplication::self 0x7ffff6947ac0 <+0x000b> 48 8b 00 mov rax,QWORD PTR [rax] # rax = 0x7fffffffe540 -- same as QCoreApplication::self 0x7ffff6947ac3 <+0x000e> 5d pop rbp 0x7ffff6947ac4 <+0x000f> c3 ret ============================================== ============================================== A few more calls (2-3) to QCoreApplication::instance() have the same address and the same result (it return the right value) ============================================== ============================================== Then QCoreApplication::instance() is called from another thread, incredibly today the function return the right value :O 0 QCoreApplication::instance qcoreapplication.h 110 0x7ffff6947ab9 1 QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate qeventdispatcher_glib.cpp 301 0x7ffff6bfdedd 2 QEventDispatcherGlib::QEventDispatcherGlib qeventdispatcher_glib.cpp 353 0x7ffff6bfe221 3 QThreadPrivate::createEventDispatcher qthread_unix.cpp 259 0x7ffff6961020 4 QThreadPrivate::start qthread_unix.cpp 313 0x7ffff6961240 5 start_thread 309 0x7ffff63f90a4 6 clone 111 0x7ffff589c04d 1 QEventDispatcherGlibPrivate::QEventDispatcherGlibPrivate qeventdispatcher_glib.cpp 301 0x7ffff6bfdedd 301 [1] QCoreApplication *app = QCoreApplication::instance(); 0x7ffff6bfded8 <+0x005e> e8 d8 9b d4 ff call 0x7ffff6947ab5 0x7ffff6bfdedd <+0x0063> 48 89 45 d8 mov QWORD PTR [rbp-0x28],rax 0 QCoreApplication::instance qcoreapplication.h 110 0x7ffff6947ab9 110 [1] static QCoreApplication *instance() { return self; } 0x7ffff6947ab5 55 push rbp 0x7ffff6947ab6 <+0x0001> 48 89 e5 mov rbp,rsp 0x7ffff6947ab9 <+0x0004> 48 8b 05 40 5d 59 00 mov rax,QWORD PTR [rip+0x595d40] # 0x7ffff6edd800 # rax = 0x7ffff6eeb158 -- same as &QCoreApplication::self 0x7ffff6947ac0 <+0x000b> 48 8b 00 mov rax,QWORD PTR [rax] # rax = 0x7fffffffe540 -- QCoreApplication::self 0x7ffff6947ac3 <+0x000e> 5d pop rbp 0x7ffff6947ac4 <+0x000f> c3 ret ============================================== ============================================== Then QCoreApplication::instance() is called from main thread. 0 QCoreApplication::instance qcoreapplication.h 110 0x7ffff6fc9c5e 1 QGuiApplicationPrivate::qt_qpa_core_dispatcher qguiapplication_p.h 105 0x7ffff6fd5a3d 2 QWindowSystemInterfacePrivate::handleWindowSystemEvent qwindowsysteminterface.cpp 432 0x7ffff6fd2ab7 3 QWindowSystemInterface::handleScreenGeometryChange qwindowsysteminterface.cpp 536 0x7ffff6fd2fdb 4 QXcbScreen::updateGeometry qxcbscreen.cpp 505 0x7ffff00ea079 5 QXcbScreen::QXcbScreen qxcbscreen.cpp 102 0x7ffff00e812b 6 QXcbConnection::createScreen qxcbconnection.cpp 162 0x7ffff00cb544 7 QXcbConnection::initializeScreens qxcbconnection.cpp 375 0x7ffff00ccdba 8 QXcbConnection::QXcbConnection qxcbconnection.cpp 504 0x7ffff00cdc09 9 QXcbIntegration::QXcbIntegration qxcbintegration.cpp 170 0x7ffff00d8f31 10 QXcbIntegrationPlugin::create qxcbmain.cpp 50 0x7ffff7ff2665 11 loadIntegration qplatformintegrationfactory.cpp 56 0x7ffff6fdc6d9 12 QPlatformIntegrationFactory::create qplatformintegrationfactory.cpp 73 0x7ffff6fdc792 13 init_platform qguiapplication.cpp 1020 0x7ffff6fe868b 14 QGuiApplicationPrivate::createPlatformIntegration qguiapplication.cpp 1177 0x7ffff6fe9956 15 QGuiApplicationPrivate::createEventDispatcher qguiapplication.cpp 1194 0x7ffff6fe9abf 16 QApplicationPrivate::createEventDispatcher qapplication.cpp 196 0x7ffff7743040 17 QCoreApplication::init qcoreapplication.cpp 766 0x7ffff6b888f8 18 QCoreApplication::QCoreApplication qcoreapplication.cpp 688 0x7ffff6b88663 19 QGuiApplication::QGuiApplication qguiapplication.cpp 570 0x7ffff6fe74c5 20 QApplication::QApplication qapplication.cpp 569 0x7ffff7743943 ... 1 QGuiApplicationPrivate::qt_qpa_core_dispatcher qguiapplication_p.h 105 0x7ffff6fd5a3d 105 [1] if (QCoreApplication::instance()) 0x7ffff6fd5a38 <+0x0004> e8 1d 42 ff ff call 0x7ffff6fc9c5a 0x7ffff6fd5a3d <+0x0009> 48 85 c0 test rax,rax 0x7ffff6fd5a40 <+0x000c> 0f 95 c0 setne al 0x7ffff6fd5a43 <+0x000f> 84 c0 test al,al 0x7ffff6fd5a45 <+0x0011> 74 1f je 0x7ffff6fd5a66 0 QCoreApplication::instance qcoreapplication.h 110 0x7ffff6fc9c5e 110 [1] static QCoreApplication *instance() { return self; } 0x7ffff6fc9c5a 55 push rbp 0x7ffff6fc9c5b <+0x0001> 48 89 e5 mov rbp,rsp 0x7ffff6fc9c5e <+0x0004> 48 8b 05 db 77 5e 00 mov rax,QWORD PTR [rip+0x5e77db] # 0x7ffff75b1440 #rax = 0x40cef0 -- which is NOT the same as &QCoreApplication::self (I really don't know why is not crashing, 0x40cef0 seems to me an invalid address) 0x7ffff6fc9c65 <+0x000b> 48 8b 00 mov rax,QWORD PTR [rax] #rax = 0x0 -- which is NOT the same as QCoreApplication::self 0x7ffff6fc9c68 <+0x000e> 5d pop rbp 0x7ffff6fc9c69 <+0x000f> c3 ret This scenario is repeated until it hits QPlatformIntegration::screenAdded and it crashes ==============================================