We've got an uncaught C++ exception caused crash. Two versions of the same product, one is arm64 another is x86_64, same bug, same crash, two reports. One from arm64 has a message
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
User ID: 0
Date/Time: 2023-01-26 09:23:24.8975 +0200
OS Version: macOS 12.2.1 (21D62)
Report Version: 12
Crashed Thread: 18 Dispatch queue: NEFlow queue
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
abort() called
terminating with uncaught exception of type std::__1::regex_error: One of *?+{ was not preceded by a valid regular expression.
and another one doesn't
Code Type: X86-64 (Native)
Parent Process: launchd [1]
User ID: 0
Date/Time: 2023-01-26 05:40:35.2732 -0500
OS Version: macOS 12.5.1 (21G83)
Report Version: 12
Crashed Thread: 19 Dispatch queue: NEFlow queue
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
abort() called
The first one is immensely helpful just because of the reference to std::regex and another one is close to useless. Crashed thread is identical in both cases:
0 libsystem_kernel.dylib 0x7ff80ef6300e __pthread_kill + 10
1 libsystem_pthread.dylib 0x7ff80ef991ff pthread_kill + 263
2 libsystem_c.dylib 0x7ff80eee4d24 abort + 123
3 libc++abi.dylib 0x7ff80ef55082 abort_message + 241
4 libc++abi.dylib 0x7ff80ef461a5 demangling_terminate_handler() + 242
5 libobjc.A.dylib 0x7ff80ee42e19 _objc_terminate() + 104
6 libc++abi.dylib 0x7ff80ef544a7 std::__terminate(void (*)()) + 8
7 libc++abi.dylib 0x7ff80ef54458 std::terminate() + 56
8 libdispatch.dylib 0x7ff80ede232b _dispatch_client_callout + 28
9 libdispatch.dylib 0x7ff80ede8317 _dispatch_lane_serial_drain + 672
10 libdispatch.dylib 0x7ff80ede8dfd _dispatch_lane_invoke + 366
11 libdispatch.dylib 0x7ff80edf2eee _dispatch_workloop_worker_thread + 753
12 libsystem_pthread.dylib 0x7ff80ef95fd0 _pthread_wqthread + 326
13 libsystem_pthread.dylib 0x7ff80ef94f57 start_wqthread + 15
There is no mentioning of string "regex" anywhere else in crash logs in backtraces or remaining parts. So the exception message here is the most important piece of information and yet it's mysteriously missing in one crash log and present in another. Any idea why the very same exception message is not always logged?