-------------------------------------
Translated Report (Full Report Below)
-------------------------------------
Process: LabRecorder [85024]
Path: /opt/homebrew/*/LabRecorder.app/Contents/MacOS/LabRecorder
Identifier: com.yourcompany.LabRecorder
Version: 1.16 (1.16.4)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
User ID: 502
Date/Time: 2025-03-03 12:36:55.6944 -0500
OS Version: macOS 15.3.1 (24D70)
Report Version: 12
Anonymous UUID: FF1EA579-0076-B56B-AC17-233A4012D9E7
Sleep/Wake UUID: A038988F-3E40-45E4-B135-BE514D0BB402
Time Awake Since Boot: 170000 seconds
Time Since Wake: 10161 seconds
System Integrity Protection: enabled
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGKILL (Code Signature Invalid))
Exception Codes: UNKNOWN_0x32 at 0x00000001136b0000
Exception Codes: 0x0000000000000032, 0x00000001136b0000
Termination Reason: Namespace CODESIGNING, Code 2 Invalid Page
VM Region Info: 0x1136b0000 is in 0x1136b0000-0x1136b8000; bytes after start: 0 bytes before end: 32767
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
mapped file 113698000-1136b0000 [ 96K] r--/rwx SM=COW Object_id=7f687f6d
---> mapped file 1136b0000-1136b8000 [ 32K] r-x/rwx SM=COW Object_id=7f687f6d
VM_ALLOCATE (reserved) 1136b8000-1136c8000 [ 64K] rw-/rwx SM=NUL reserved VM address space (unallocated)
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 dyld 0x196c6aeb0 dyld3::MachOFile::isMachO(Diagnostics&, unsigned long long) const + 40
1 dyld 0x196c39f68 dyld4::Loader::mapSegments(Diagnostics&, dyld4::RuntimeState&, char const*, unsigned long long, dyld4::Loader::CodeSignatureInFile const&, bool, dyld3::Array<dyld4::Loader::Region> const&, bool, bool, dyld4::Loader::FileValidationInfo const&) + 1064
2 dyld 0x196c43f44 invocation function for block in dyld4::JustInTimeLoader::makeJustInTimeLoaderDisk(Diagnostics&, dyld4::RuntimeState&, char const*, dyld4::Loader::LoadOptions const&, bool, unsigned int, mach_o::Layout const*) + 88
3 dyld 0x196c438f8 dyld4::JustInTimeLoader::withRegions(dyld3::MachOFile const*, void (dyld3::Array<dyld4::Loader::Region> const&) block_pointer) + 296
4 dyld 0x196c43e88 invocation function for block in dyld4::JustInTimeLoader::makeJustInTimeLoaderDisk(Diagnostics&, dyld4::RuntimeState&, char const*, dyld4::Loader::LoadOptions const&, bool, unsigned int, mach_o::Layout const*) + 484
5 dyld 0x196c483b8 dyld4::SyscallDelegate::withReadOnlyMappedFile(Diagnostics&, char const*, bool, void (void const*, unsigned long, bool, dyld4::FileID const&, char const*) block_pointer) const + 132
6 dyld 0x196c43c70 dyld4::JustInTimeLoader::makeJustInTimeLoaderDisk(Diagnostics&, dyld4::RuntimeState&, char const*, dyld4::Loader::LoadOptions const&, bool, unsigned int, mach_o::Layout const*) + 208
7 dyld 0x196c379c4 dyld4::Loader::makeDiskLoader(Diagnostics&, dyld4::RuntimeState&, char const*, dyld4::Loader::LoadOptions const&, bool, unsigned int, mach_o::Layout const*) + 172
8 dyld 0x196c3922c invocation function for block in dyld4::Loader::getLoader(Diagnostics&, dyld4::RuntimeState&, char const*, dyld4::Loader::LoadOptions const&) + 2556
9 dyld 0x196c38084 dyld4::Loader::forEachResolvedAtPathVar(dyld4::RuntimeState&, char const*, dyld4::Loader::LoadOptions const&, dyld4::ProcessConfig::PathOverrides::Type, bool&, void (char const*, dyld4::ProcessConfig::PathOverrides::Type, bool&) block_pointer) + 780
10 dyld 0x196c27900 dyld4::ProcessConfig::PathOverrides::forEachPathVariant(char const*, dyld3::Platform, bool, bool, bool&, void (char const*, dyld4::ProcessConfig::PathOverrides::Type, bool&) block_pointer) const + 1232
11 dyld 0x196c37bb8 dyld4::Loader::forEachPath(Diagnostics&, dyld4::RuntimeState&, char const*, dyld4::Loader::LoadOptions const&, void (char const*, dyld4::ProcessConfig::PathOverrides::Type, bool&) block_pointer) + 264
12 dyld 0x196c382b0 dyld4::Loader::getLoader(Diagnostics&, dyld4::RuntimeState&, char const*, dyld4::Loader::LoadOptions const&) + 492
13 dyld 0x196c5bfcc dyld4::APIs::dlopen_from(char const*, int, void*)::$_0::operator()() const + 240
14 dyld 0x196c53be0 dyld4::APIs::dlopen_from(char const*, int, void*) + 1092
15 QtCore 0x1041dd194 0x103f78000 + 2511252
16 QtCore 0x1041d97d0 0x103f78000 + 2496464
17 QtCore 0x1041d9518 0x103f78000 + 2495768
18 QtCore 0x1041d93d4 0x103f78000 + 2495444
19 QtCore 0x104053a98 QFactoryLoader::instance(int) const + 128
20 QtGui 0x103a48a2c 0x103a0c000 + 248364
21 QtGui 0x103a48508 0x103a0c000 + 247048
22 QtGui 0x103a4a0c0 QImageReader::read(QImage*) + 60
23 QtGui 0x103a4a034 QImageReader::read() + 72
24 QtGui 0x103a5c5c8 QPlatformPixmap::fromFile(QString const&, char const*, QFlags<Qt::ImageConversionFlag>) + 104
25 QtGui 0x103a55228 QPixmap::load(QString const&, char const*, QFlags<Qt::ImageConversionFlag>) + 612
26 QtGui 0x103a54fb0 QPixmap::QPixmap(QString const&, char const*, QFlags<Qt::ImageConversionFlag>) + 80
27 libqmacstyle.dylib 0x1132ef8ac 0x1132d4000 + 112812
28 QtWidgets 0x1030efc9c 0x102f78000 + 1539228
29 QtWidgets 0x1030f1ca0 0x102f78000 + 1547424
30 QtWidgets 0x1030f20e0 QMenuBar::QMenuBar(QWidget*) + 88
31 LabRecorder 0x102794d84 0x10278c000 + 36228
32 LabRecorder 0x10279355c MainWindow::MainWindow(QWidget*, char const*) + 172
33 LabRecorder 0x10279336c main + 352
34 dyld 0x196c24274 start + 2840
Thread 1:
0 libsystem_pthread.dylib 0x196f9f0e8 start_wqthread + 0
Thread 2:
0 libsystem_pthread.dylib 0x196f9f0e8 start_wqthread + 0
Thread 3:
0 libsystem_pthread.dylib 0x196f9f0e8 start_wqthread + 0
Thread 4:
0 libsystem_pthread.dylib 0x196f9f0e8 start_wqthread + 0
Thread 0 crashed with ARM Thread State (64-bit):
x0: 0x00000001136b0000 x1: 0x000000016d670eb8 x2: 0x0000000000008000 x3: 0x0000000000040012
x4: 0x0000000000000004 x5: 0x0000000000000000 x6: 0x0000000000000000 x7: 0x0000000000000000
x8: 0x00000002009148ec x9: 0x0000000200916150 x10: 0x0000000000000012 x11: 0x0000000000000001
x12: 0x0800000000010000 x13: 0x0000000000000000 x14: 0x0000000000007100 x15: 0x00006000027e96f4
x16: 0x00000000000000c5 x17: 0x0000000196c21f58 x18: 0x0000000000000000 x19: 0x000000016d670eb8
x20: 0x0000000000000004 x21: 0x000000016d670eb8 x22: 0x000000016d670938 x23: 0x0000000000018000
x24: 0x0000000000000000 x25: 0x000000016d6706ac x26: 0x0000000000000000 x27: 0x00000001136b0000
x28: 0x0000000000000040 fp: 0x000000016d670090 lr: 0x0000000196c39f68
sp: 0x000000016d670080 pc: 0x0000000196c6aeb0 cpsr: 0x20001000
far: 0x00000001136b0000 esr: 0x92000007 (Data Abort) byte read Translation fault
Binary Images:
0x10278c000 - 0x1027b3fff com.yourcompany.LabRecorder (1.16) <d17b9d68-8f68-36cc-b151-971f2f904f54> /opt/homebrew/*/LabRecorder.app/Contents/MacOS/LabRecorder
0x102f78000 - 0x10334bfff org.qt-project.QtWidgets (6.8) <43ceb428-cea3-3f43-b5ae-0a4071833754> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/QtWidgets.framework/Versions/A/QtWidgets
0x102a48000 - 0x102b5bfff org.qt-project.QtNetwork (6.8) <0d3d2cc1-4d21-38ac-9710-0c0cb54da260> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/QtNetwork.framework/Versions/A/QtNetwork
0x102864000 - 0x1028dffff liblsl.2.dylib (*) <814d925b-2245-3129-bbab-4adf6a090a6c> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/liblsl.2.dylib
0x103a0c000 - 0x103e2ffff org.qt-project.QtGui (6.8) <7a1f6f48-5ea9-3494-bc3c-3a368de24fdc> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/QtGui.framework/Versions/A/QtGui
0x1028fc000 - 0x10296bfff org.qt-project.QtDBus (6.8) <f05f7e02-0fa3-3aca-8bcb-fee6af690626> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/QtDBus.framework/Versions/A/QtDBus
0x103f78000 - 0x104327fff org.qt-project.QtCore (6.8) <9f7ffb98-c222-3a9b-877d-4558bf5e47d7> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/QtCore.framework/Versions/A/QtCore
0x102ce4000 - 0x102dd3fff libglib-2.0.0.dylib (*) <18b10412-3378-36cc-acad-9a1fe1a8f7c6> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libglib-2.0.0.dylib
0x102800000 - 0x102823fff libpng16.16.dylib (*) <3e18f1d7-83f5-3c02-a880-7bb07c69d9eb> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libpng16.16.dylib
0x102e04000 - 0x102ebffff libharfbuzz.0.dylib (*) <67288dd6-e5da-39b0-a708-b822fba71d71> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libharfbuzz.0.dylib
0x1027e4000 - 0x1027effff libmd4c.0.dylib (*) <a43306ad-7575-3a2c-96ee-8c2348239077> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libmd4c.0.dylib
0x102c54000 - 0x102ccffff libfreetype.6.dylib (*) <26d566c1-3b1f-30fb-ba97-0413177dae5e> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libfreetype.6.dylib
0x102834000 - 0x102837fff libgthread-2.0.0.dylib (*) <81432589-977b-304a-8fa6-c20eadce9802> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libgthread-2.0.0.dylib
0x1029b8000 - 0x1029cbfff libintl.8.dylib (*) <01d438ce-f021-3d6c-bdad-6708c80acc1c> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libintl.8.dylib
0x102edc000 - 0x102f4ffff libpcre2-8.0.dylib (*) <548b061b-ef80-3713-94e9-78e7a5969ef5> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libpcre2-8.0.dylib
0x102c0c000 - 0x102c3bfff libdbus-1.3.dylib (*) <39e8ef3d-0a4a-3f7f-a729-c37ebc8e538c> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libdbus-1.3.dylib
0x103738000 - 0x1038e7fff libicui18n.76.dylib (*) <e3303a1c-7e68-3eb8-8e73-c05b2c8d19fb> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libicui18n.76.dylib
0x104404000 - 0x10453bfff libicuuc.76.dylib (*) <618b44c5-d9e5-35d0-b97f-b74ba80b598e> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libicuuc.76.dylib
0x106444000 - 0x1082a7fff libicudata.76.dylib (*) <c78d7cdf-eae7-3b7f-8715-9b98d887dde8> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libicudata.76.dylib
0x102844000 - 0x10284ffff libdouble-conversion.3.dylib (*) <99e1194f-a3c6-30df-a9a2-5183f8ea3775> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libdouble-conversion.3.dylib
0x102994000 - 0x10299bfff libb2.1.dylib (*) <82f85bf6-93d0-3be3-9cc8-23cbf361e60f> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libb2.1.dylib
0x103524000 - 0x10358ffff libpcre2-16.0.dylib (*) <6269ad5a-a836-31b0-b106-3d0691480902> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libpcre2-16.0.dylib
0x103640000 - 0x1036cbfff libzstd.1.dylib (*) <afd03688-5fac-3b3d-96aa-9d88c034ff23> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libzstd.1.dylib
0x102bc4000 - 0x102bd7fff libgraphite2.3.dylib (*) <dadd250f-e2ba-36f3-b960-ea391395d1e7> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libgraphite2.3.dylib
0x1029dc000 - 0x1029e7fff libbrotlidec.1.dylib (*) <cc77e640-3de5-3d9c-9565-c60ed8119746> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libbrotlidec.1.dylib
0x1034d4000 - 0x1034f3fff libbrotlicommon.1.dylib (*) <cbb61532-d27c-331e-996e-843ed45f10e9> /opt/homebrew/*/LabRecorder.app/Contents/Frameworks/libbrotlicommon.1.dylib
0x1035e0000 - 0x1035fffff com.apple.security.csparser (3.0) <fb85321b-0fa8-3ace-941c-abef6c37ff36> /System/Library/Frameworks/Security.framework/Versions/A/PlugIns/csparser.bundle/Contents/MacOS/csparser
0x104778000 - 0x104813fff libqcocoa.dylib (*) <a5afc8bd-0333-3c22-8091-a2634d0654b9> /opt/homebrew/*/LabRecorder.app/Contents/PlugIns/platforms/libqcocoa.dylib
0x1132d4000 - 0x1132f7fff libqmacstyle.dylib (*) <3f3cdfc3-13b6-3093-b1ae-3947abc8e235> /opt/homebrew/*/LabRecorder.app/Contents/PlugIns/styles/libqmacstyle.dylib
0x113298000 - 0x1132a3fff libobjc-trampolines.dylib (*) <3d687e9b-e092-3632-bc1d-74b19d492de0> /usr/lib/libobjc-trampolines.dylib
0x115da0000 - 0x116507fff com.apple.AGXMetalG15X-M1 (324.6) <c21f5272-9e81-3e96-82c4-ebae9938031f> /System/Library/Extensions/AGXMetalG15X_M1.bundle/Contents/MacOS/AGXMetalG15X_M1
0x113670000 - 0x113677fff libqgif.dylib (*) <a3523fa3-0545-35c9-83bb-5fe68ecf8e82> /opt/homebrew/*/LabRecorder.app/Contents/PlugIns/imageformats/libqgif.dylib
0x113684000 - 0x11368bfff libqwbmp.dylib (*) <9e184f0c-094c-323a-95ea-95b4b1b09711> /opt/homebrew/*/LabRecorder.app/Contents/PlugIns/imageformats/libqwbmp.dylib
0x196c1e000 - 0x196c9ff3f dyld (*) <398a133c-9bcb-317f-a064-a40d3cea3c0f> /usr/lib/dyld
0x0 - 0xffffffffffffffff ??? (*) <00000000-0000-0000-0000-000000000000> ???
0x196f9d000 - 0x196fa9fff libsystem_pthread.dylib (*) <642faf7a-874e-37e6-8aba-2b0cc09a3025> /usr/lib/system/libsystem_pthread.dylib
External Modification Summary:
Calls made by other processes targeting this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by this process:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
Calls made by all processes on this machine:
task_for_pid: 0
thread_create: 0
thread_set_state: 0
VM Region Summary:
ReadOnly portion of Libraries: Total=955.4M resident=0K(0%) swapped_out_or_unallocated=955.4M(100%)
Writable regions: Total=1.1G written=658K(0%) resident=658K(0%) swapped_out=0K(0%) unallocated=1.1G(100%)
VIRTUAL REGION
REGION TYPE SIZE COUNT (non-coalesced)
=========== ======= =======
Activity Tracing 256K 1
ColorSync 544K 26
CoreGraphics 32K 2
Foundation 16K 1
Kernel Alloc Once 32K 1
MALLOC 1.1G 52
MALLOC guard page 288K 18
STACK GUARD 56.1M 5
Stack 10.1M 6
VM_ALLOCATE 48K 3
VM_ALLOCATE (reserved) 64K 1 reserved VM address space (unallocated)
__AUTH 1163K 213
__AUTH_CONST 19.0M 367
__DATA 5233K 373
__DATA_CONST 14.2M 399
__DATA_DIRTY 695K 112
__FONT_DATA 2352 1
__LINKEDIT 613.9M 34
__OBJC_RW 2374K 1
__TEXT 341.5M 415
__TPRO_CONST 272K 2
mapped file 217.1M 24
owned unmapped memory 32K 1
page table in kernel 658K 1
shared memory 1376K 12
=========== ======= =======
TOTAL 2.4G 2071
TOTAL, minus reserved VM space 2.4G 2071
Summary
I've encountered challenges running LabRecorder v1.16.4 on Apple Silicon (M1/M2/M3) Macs using the provided installation methods. After testing extensively and comparing with other user reports, I've identified consistent compatibility issues that affect Apple Silicon users. This issue is related to issue #114, but I'm providing a complete working solution.
Detailed Issues
1. Pre-built Binary Dependency Issues
When downloading and running the x64 binary from the releases page
LabRecorder-1.16.4-OSX_amd64.tar.bz2, the app doesn't start because of missing libraries:This suggests the application bundle is incomplete, missing essential dependencies required for operation on Apple Silicon Macs.
2. Homebrew Installation Issues
Following the README installation instructions:
The Homebrew-installed version doesn't launch successfully:
This occurs during Qt plugin loading in the application initialization process.
Environment Information
Reproduction Steps
Pre-built Binary:
LabRecorder-1.16.4-OSX_arm64.tar.bz2from the releases pagelibbrotlicommon.1.dylibHomebrew Installation:
brew install labstreaminglayer/tap/lsl qt labrecorder/opt/homebrew/opt/labrecorder/LabRecorder/LabRecorder.appWorking Solution for Apple Silicon Macs
After investigating the root causes, I've developed this solution that addresses both the dependency issues and code signing problems on Apple Silicon Macs:
Prerequisites
Build Process
install_name_tool -change @rpath/QtGui.framework/Versions/A/QtGui @executable_path/../Frameworks/QtGui \ install/LabRecorder/LabRecorder.app/Contents/PlugIns/platforms/libqcocoa.dylibFollowing these steps resulted in a fully functional LabRecorder application on my Apple Silicon Mac! While this solution works, the complexity of these steps suggests there might be opportunities to improve the build process for Apple Silicon users.
Suggestions for Consideration
Additional Information
I've attached crash logs from both installation methods for reference. I'd be happy to provide any additional information that might help resolve these compatibility issues for Apple Silicon users.
Truncated crash log from Pre-built Binary installation
Truncated crash log from Homebrew installation