-
Notifications
You must be signed in to change notification settings - Fork 32
[Bug]: Crash on macOS 10.15.7 (Catalina) — Symbol not found: _CGRequestScreenCaptureAccess #697
Description
Contact Details (e.g. Tox ID or email)
No response
qTox Version
1.18.4
Commit Hash
No response
Toxcore Version
No response
Qt Version
No response
Steps to reproduce
- Install qTox v1.18.4 from
qTox-v1.18.4.x86_64-10.15.dmg - Launch qTox
- Open Settings → Audio/Video tab
Observed Behavior
qTox crashes immediately when opening the Audio/Video settings tab.
The crash is caused by a missing symbol _CGRequestScreenCaptureAccess in CoreGraphics on macOS 10.15.7. The 10.15 dmg build implies Catalina support, but the binary references CGRequestScreenCaptureAccess without weak linking or runtime availability check.
The symbol is resolved lazily — the app starts fine, but crashes on first call to CameraDevice::getDeviceList() triggered by AVForm::showEvent() when the AV settings tab is shown.
Crash summary:
Termination Reason: DYLD, [0x4] Symbol missing
Dyld Error Message:
Symbol not found: _CGRequestScreenCaptureAccess
Referenced from: /Applications/qtox.app/Contents/MacOS/qtox
Expected in: /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
Relevant stack frames:
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
4 dyld dyld::fastBindLazySymbol(ImageLoader**, unsigned long) + 140
5 libdyld.dylib dyld_stub_binder + 282
7 chat.tox.qtox CameraDevice::getDeviceList() + 442
8 chat.tox.qtox AVForm::getVideoDevices() + 60
9 chat.tox.qtox AVForm::showEvent(QShowEvent*) + 64
Full crash report is attached below.
Expected Behavior
The Audio/Video settings tab should open without crashing. The CGRequestScreenCaptureAccess call should be weak-linked or guarded with a runtime availability check (__builtin_available / dlsym) for the 10.15 build.
Reproducibility
Always
Operating System
macOS
Operating System version/distro/name/etc.
macOS 10.15.7 Catalina (19H2026), x86_64
Relevant log output
Process: qtox [11460]
Path: /Applications/qtox.app/Contents/MacOS/qtox
Identifier: chat.tox.qtox
Version: 1.18.4 (1.18.4)
Code Type: X86-64 (Native)
Parent Process: ??? [1]
Responsible: qtox [11460]
User ID: 501
Date/Time: 2026-03-10 17:51:56.366 +0300
OS Version: Mac OS X 10.15.7 (19H2026)
Report Version: 12
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_CRASH (SIGKILL)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: DYLD, [0x4] Symbol missing
Dyld Error Message:
Symbol not found: _CGRequestScreenCaptureAccess
Referenced from: /Applications/qtox.app/Contents/MacOS/qtox
Expected in: /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 dyld 0x0000000118af053a __terminate_with_payload + 10
1 dyld 0x0000000118b19714 abort_with_payload_wrapper_internal + 119
2 dyld 0x0000000118b1971f abort_with_payload + 9
3 dyld 0x0000000118b16d74 dyld::halt(char const*) + 463
4 dyld 0x0000000118a9ebc3 dyld::fastBindLazySymbol(ImageLoader**, unsigned long) + 140
5 libdyld.dylib 0x00007fff72939692 dyld_stub_binder + 282
6 ??? 0x000000010cd35fc0 0 + 4510146496
7 chat.tox.qtox 0x000000010a3927ea CameraDevice::getDeviceList() + 442
8 chat.tox.qtox 0x000000010a3e3bac AVForm::getVideoDevices() + 60
9 chat.tox.qtox 0x000000010a3e3330 AVForm::showEvent(QShowEvent*) + 64
10 chat.tox.qtox 0x000000010a9069c8 QWidget::event(QEvent*) + 2488
11 chat.tox.qtox 0x000000010a8c0261 QApplicationPrivate::notify_helper(QObject*, QEvent*) + 241
12 chat.tox.qtox 0x000000010a8c1258 QApplication::notify(QObject*, QEvent*) + 488
13 chat.tox.qtox 0x000000010a0929ce QCoreApplication::notifyInternal2(QObject*, QEvent*) + 174
14 chat.tox.qtox 0x000000010a904f57 QWidgetPrivate::show_helper() + 103
15 chat.tox.qtox 0x000000010a905cf2 QWidgetPrivate::setVisible(bool) + 882
16 chat.tox.qtox 0x000000010a8eff21 QStackedLayout::setCurrentIndex(int) + 449
17 chat.tox.qtox 0x000000010aa889da QTabWidgetPrivate::_q_showTab(int) + 74
18 chat.tox.qtox 0x000000010a0cdda6 void doActivate<false>(QObject*, int, void**) + 1590
19 chat.tox.qtox 0x000000010aa6c1bd QTabBar::setCurrentIndex(int) + 461
20 chat.tox.qtox 0x000000010aa6f9fe QTabBar::mousePressEvent(QMouseEvent*) + 558