Skip to content

Instantly share code, notes, and snippets.

@Birch-san
Last active July 24, 2017 22:02
Show Gist options
  • Save Birch-san/3399a5c67a0d95b3c543d6888a972a04 to your computer and use it in GitHub Desktop.
Save Birch-san/3399a5c67a0d95b3c543d6888a972a04 to your computer and use it in GitHub Desktop.
Distinct stacks invoking `sendPostedEvents()`, with custom event dispatcher installed **plus** we never explicitly invoke processEvents() (à la magic commit)
QtCore`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
QtCore`0x00000001061dfac0+0x5b
QtCore`0x00000001061e0780+0x27
libsystem_pthread.dylib`_pthread_tsd_cleanup+0x1d6
libsystem_pthread.dylib`_pthread_exit+0x98
libsystem_pthread.dylib`pthread_sigmask
libsystem_pthread.dylib`_pthread_body
libsystem_pthread.dylib`thread_start+0xd
1
QtCore`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
QtCore`0x00000001061dfac0+0x5b
QtCore`0x00000001061df850+0x179
libsystem_pthread.dylib`_pthread_body+0xb4
libsystem_pthread.dylib`_pthread_body
libsystem_pthread.dylib`thread_start+0xd
1
QtCore`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
QtQuick`QQuickRenderControl::~QQuickRenderControl()+0x85
libopenage.0.dylib`qtsdl::GuiRendererImpl::~GuiRendererImpl()+0x159
libopenage.0.dylib`qtsdl::GuiRendererImpl::~GuiRendererImpl()+0x15
libopenage.0.dylib`qtsdl::GuiRendererImpl::~GuiRendererImpl()+0x19
libopenage.0.dylib`qtsdl::GuiRenderer::~GuiRenderer()+0xaf
libopenage.0.dylib`qtsdl::GuiRenderer::~GuiRenderer()+0x15
libopenage.0.dylib`openage::gui::GUI::~GUI()+0x206
libopenage.0.dylib`openage::gui::GUI::~GUI()+0x15
libopenage.0.dylib`openage::gui::GUI::~GUI()+0x19
libopenage.0.dylib`openage::Engine::~Engine()+0x129
libopenage.0.dylib`openage::Engine::~Engine()+0x15
libopenage.0.dylib`openage::run_game(openage::main_arguments const&)+0x672
main_cpp.cpython-36m-darwin.so`__pyx_pf_7openage_4game_8main_cpp_run_game(_object*, _object*, _object*)+0xa4a
main_cpp.cpython-36m-darwin.so`__pyx_pw_7openage_4game_8main_cpp_1run_game(_object*, _object*, _object*)+0x355
Python`_PyCFunction_FastCallDict+0x1cd
Python`call_function+0x232
Python`_PyEval_EvalFrameDefault+0x68eb
Python`_PyFunction_FastCall+0x79
Python`call_function+0x20c
1
QtCore`QCoreApplication::sendPostedEvents(QObject*, int)
QtCore`0x00000001061dfac0+0x5b
QtCore`0x00000001061e0780+0x27
libsystem_pthread.dylib`_pthread_tsd_cleanup+0x1d6
libsystem_pthread.dylib`_pthread_exit+0x98
libsystem_pthread.dylib`pthread_sigmask
libsystem_pthread.dylib`_pthread_body
libsystem_pthread.dylib`thread_start+0xd
1
QtCore`QCoreApplication::sendPostedEvents(QObject*, int)
QtCore`0x00000001061dfac0+0x5b
QtCore`0x00000001061df850+0x179
libsystem_pthread.dylib`_pthread_body+0xb4
libsystem_pthread.dylib`_pthread_body
libsystem_pthread.dylib`thread_start+0xd
1
QtCore`QCoreApplication::sendPostedEvents(QObject*, int)
QtQuick`QQuickRenderControl::~QQuickRenderControl()+0x85
libopenage.0.dylib`qtsdl::GuiRendererImpl::~GuiRendererImpl()+0x159
libopenage.0.dylib`qtsdl::GuiRendererImpl::~GuiRendererImpl()+0x15
libopenage.0.dylib`qtsdl::GuiRendererImpl::~GuiRendererImpl()+0x19
libopenage.0.dylib`qtsdl::GuiRenderer::~GuiRenderer()+0xaf
libopenage.0.dylib`qtsdl::GuiRenderer::~GuiRenderer()+0x15
libopenage.0.dylib`openage::gui::GUI::~GUI()+0x206
libopenage.0.dylib`openage::gui::GUI::~GUI()+0x15
libopenage.0.dylib`openage::gui::GUI::~GUI()+0x19
libopenage.0.dylib`openage::Engine::~Engine()+0x129
libopenage.0.dylib`openage::Engine::~Engine()+0x15
libopenage.0.dylib`openage::run_game(openage::main_arguments const&)+0x672
main_cpp.cpython-36m-darwin.so`__pyx_pf_7openage_4game_8main_cpp_run_game(_object*, _object*, _object*)+0xa4a
main_cpp.cpython-36m-darwin.so`__pyx_pw_7openage_4game_8main_cpp_1run_game(_object*, _object*, _object*)+0x355
Python`_PyCFunction_FastCallDict+0x1cd
Python`call_function+0x232
Python`_PyEval_EvalFrameDefault+0x68eb
Python`_PyFunction_FastCall+0x79
Python`call_function+0x20c
1
QtCore`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
QtCore`QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)+0x49
QtCore`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)+0x1a1
QtCore`QThread::exec()+0x73
QtQml`0x0000000105f38710+0x39
QtCore`0x00000001061df850+0x16a
libsystem_pthread.dylib`_pthread_body+0xb4
libsystem_pthread.dylib`_pthread_body
libsystem_pthread.dylib`thread_start+0xd
2
QtCore`QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
QtCore`QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)+0x49
QtCore`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)+0x1a1
libopenage.0.dylib`qtsdl::RecursiveDirectoryWatcher::RecursiveDirectoryWatcher(QObject*)::$_0::operator()() const+0x200
libopenage.0.dylib`_ZNSt3__112__async_funcIZN5qtsdl25RecursiveDirectoryWatcherC1EP7QObjectE3$_0JEE9__executeIJEEEvNS_15__tuple_indicesIJXspT_EEEE+0x3d
libopenage.0.dylib`std::__1::__async_func<qtsdl::RecursiveDirectoryWatcher::RecursiveDirectoryWatcher(QObject*)::$_0>::operator()()+0x15
libopenage.0.dylib`std::__1::__async_assoc_state<void, std::__1::__async_func<qtsdl::RecursiveDirectoryWatcher::RecursiveDirectoryWatcher(QObject*)::$_0> >::__execute()+0x1f
libopenage.0.dylib`std::__1::__thread_proxy<std::__1::tuple<void (std::__1::__async_assoc_state<void, std::__1::__async_func<qtsdl::RecursiveDirectoryWatcher::RecursiveDirectoryWatcher(QObject*)::$_0> >::*)(), std::__1::__async_assoc_state<void, std::__1::__async_func<qtsdl::RecursiveDirectoryWatcher::RecursiveDirectoryWatcher(QObject*)::$_0> >*> >(void*, void*)+0x214
libsystem_pthread.dylib`_pthread_body+0xb4
libsystem_pthread.dylib`_pthread_body
libsystem_pthread.dylib`thread_start+0xd
3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment