Skip to content

[Bug]: Crash on macOS 10.15.7 (Catalina) — Symbol not found: _CGRequestScreenCaptureAccess #697

@hitriyvalenok

Description

@hitriyvalenok

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

  1. Install qTox v1.18.4 from qTox-v1.18.4.x86_64-10.15.dmg
  2. Launch qTox
  3. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions