QtCore!QThreadStorageData::get() const(arm64 ×22 + x86_64 ×15,跨架构同类)EXC_BAD_ACCESS / KERN_INVALID_ADDRESS,address 0x0,CrBrowserMainqtbase/src/corelib/thread/qthreadstorage.cpp:122
0 QtCore QThreadStorageData::get() qthreadstorage.cpp:122 ← currentThreadData 为 null
1 QtGui QOpenGLContext::currentContext() qopenglcontext.cpp:246
2 QtGui QSurface::~QSurface()
3 QtGui QWindow::~QWindow()
4 QtWidgets QWidgetWindow::~QWidgetWindow()
5 QtWidgets QWidgetPrivate::deleteTLSysExtra()
6 QtWidgets QWidget::destroy()
7 QtWidgets QWidget::~QWidget()
8-10 (app 帧,无符号)
11-12 libsystem_c (exit/__cxa_finalize 处理链)
13-15 AppKit (app 终止路径)
进程退出(exit() / NSApp 终止)后的 atexit/静态析构阶段,某顶层 QWidget 才被
析构。此时 Qt 的 per-thread 数据(QThreadData/TLS)已随 QApplication 拆除,
QOpenGLContext::currentContext() 内部 QThreadStorage::localData() 解引用
空 TLS → 崩溃。
(常见模式:static XxxWnd* s_inst = new XxxWnd; 无 parent、不随主窗口销毁),
以及 atexit / 静态对象持有 widget 的成员。
main() 返回前(QApplication 析构前)显式销毁所有顶层窗口即可修复。崩溃发生在用户主动退出 app 的收尾阶段,用户对崩溃本身通常无感知(窗口已关),
但会产生崩溃弹窗/报告噪音,并污染每日统计。优先级低于启动/运行期崩溃。