Jiri Bruchanov
11/08/2025, 9:46 PMJiri Bruchanov
11/08/2025, 9:46 PM0 FirebaseCrashlytics 0x32328 FIRCLSProcessGetThreadState + 300
1 FirebaseCrashlytics 0x31730 FIRCLSProcessRecordThread + 392
2 FirebaseCrashlytics 0x314c8 FIRCLSProcessRecordAllThreads + 164
3 FirebaseCrashlytics 0x21c3c FIRCLSHandler + 64
4 FirebaseCrashlytics 0x187dc __FIRCLSExceptionRecord_block_invoke + 172
5 libdispatch.dylib 0x1b7ec _dispatch_client_callout + 16
6 libdispatch.dylib 0x118c0 _dispatch_lane_barrier_sync_invoke_and_complete + 56
7 FirebaseCrashlytics 0x1695c FIRCLSExceptionRecord + 332
8 FirebaseCrashlytics 0x17eac FIRCLSCatchAndRecordActiveException(std::type_info*) + 728
9 DrivikoDev 0x14e0eb0 co_touchlab_crashkios_crashlytics_FIRCLSExceptionRecordNSException_wrapper134 + 296
10 DrivikoDev 0xd8afe8 kfun:com.jibru.driviko.shared.attachExceptionListener$1.invoke#internal + 78 (AppInit.ios.kt:78)
11 DrivikoDev 0xd8b230 kfun:com.jibru.driviko.shared.attachExceptionListener$1.$<bridge-DNN>invoke(kotlin.Throwable){}#internal + 74 (AppInit.ios.kt:74)
12 DrivikoDev 0x165d02c kfun:kotlin.Function1#invoke(1:0){}1:1-trampoline + 1 ([K][Suspend]Functions:1)
13 DrivikoDev 0x1535aac Kotlin_runUnhandledExceptionHook + 178 (RuntimeUtils.kt:178)
14 DrivikoDev 0x16b2e54 (anonymous namespace)::processUnhandledException(ObjHeader*) + 10
15 DrivikoDev 0x16b29b4 (anonymous namespace)::TerminateHandler::kotlinHandler() + 2924
16 FirebaseCrashlytics 0x16510 kfun:androidx.compose.ui.scene.ComposeScene#sendPointerEvent(androidx.compose.ui.input.pointer.PointerEventType;kotlin.collections.List<androidx.compose.ui.scene.ComposeScenePointer>;androidx.compose.ui.input.pointer.PointerButtons;androidx.compose.ui.input.pointer.PointerKeyboardModifiers;androidx.compose.ui.geometry.Offset;kotlin.Long;kotlin.Any?;androidx.compose.ui.input.pointer.PointerButton?){}androidx.compose.ui.scene.PointerEventResult-trampoline + 168
17 libc++abi.dylib 0x11bdc std::__terminate(void (*)()) + 768
18 libc++abi.dylib 0x15314 __cxa_get_exception_ptr + 4004
19 libc++abi.dylib 0x152bc __cxxabiv1::failed_throw(__cxxabiv1::__cxa_exception*) + 228
20 DrivikoDev 0x16b76ec (anonymous namespace)::ExceptionObjHolderImpl::ExceptionObjHolderImpl(ObjHeader*) + 156
21 DrivikoDev 0x16b76ac ExceptionObjHolder::Throw(ObjHeader*) + 124
22 DrivikoDev 0x25c01a8 kfun:androidx.compose.ui.scene.BaseComposeScene#sendPointerEvent(androidx.compose.ui.input.pointer.PointerEventType;kotlin.collections.List<androidx.compose.ui.scene.ComposeScenePointer>;androidx.compose.ui.input.pointer.PointerButtons;androidx.compose.ui.input.pointer.PointerKeyboardModifiers;androidx.compose.ui.geometry.Offset;kotlin.Long;kotlin.Any?;androidx.compose.ui.input.pointer.PointerButton?){}androidx.compose.ui.scene.PointerEventResult + 44 (Trace.uikit.kt:44)
So can't asy anywhere my ViewModel, so trying to investigate it more. Generating my own NSException manually with the stack addresses and result is exactly same.
However if I try to symobilacte stacktraces address manually. I get exactly what I'm looking for
kfun:kotlin.Throwable#<init>(kotlin.String?){} (in DrivikoDev) (Throwable.kt:30)
kfun:kotlin.Exception#<init>(kotlin.String?){} (in DrivikoDev) (Exceptions.kt:23)
kfun:kotlin.RuntimeException#<init>(kotlin.String?){} (in DrivikoDev) (Exceptions.kt:34)
kfun:kotlin.IllegalStateException#<init>(kotlin.String?){} (in DrivikoDev) (Exceptions.kt:70)
kfun:com.jibru.driviko.shared.ui.dev.DevHomeViewModel#onCrashTestClicked(){} (in DrivikoDev) (DevHomeViewModel.kt:66)
kfun:com.jibru.driviko.shared.ui.dev.DevHomeEventHandler#onCrashTestClicked(){}-trampoline (in DrivikoDev) (DevHomeViewModel.kt:26)
kfun:com.jibru.driviko.shared.ui.dev.DevHomeScreen$$inlined$Column$$FUNCTION_REFERENCE_FOR$onCrashTestClicked$3.invoke#internal (in DrivikoDev) (Column.kt:54)
kfun:com.jibru.driviko.shared.ui.dev.DevHomeScreen$$inlined$Column$$FUNCTION_REFERENCE_FOR$onCrashTestClicked$3.$<bridge-DN>invoke(){}#internal (in DrivikoDev) (Column.kt:54)
kfun:kotlin.Function0#invoke(){}1:0-trampoline (in DrivikoDev) ([K][Suspend]Functions:1)
kfun:androidx.compose.foundation.ClickableNode#onPointerEvent(androidx.compose.ui.input.pointer.PointerEvent;androidx.compose.ui.input.pointer.PointerEventPass;androidx.compose.ui.unit.IntSize){} (in DrivikoDev) (Clickable.kt:1014)
What am I missing here ? Why the firebase crashlytics doesn't show me the stacktrace I'm looking for and I'm able to recover manually from exactly same NSException ?