Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add zoned date & time to debug info & logs #1672

Merged
merged 3 commits into from
Jan 28, 2025

Conversation

MajorTanya
Copy link
Member

This should help distinguish log entries that happened recently and may be related to crashes from older entries that occurred before now.

This affects the debug info copied from the About screen as well as crash logs (both dumped manually as well as created on crash).

Example output taken from the About screen in my emulator:

App version: 0.17.1-7063 (dev, 82fd89cee, 9, 2025-01-27T12:29:30Z)
Android version: 14 (SDK 34; build UE1A.230829.036.A4)
Device brand: google
Device manufacturer: Google
Device name: emu64xa (sdk_gphone64_x86_64)
Device model: sdk_gphone64_x86_64
WebView: Android System WebView 130.0.6723.58
Current time: 2025-01-27T13:37:15.371075+01:00
Example output taken from a manual crash log dump
App version: 0.17.1-7063 (dev, 82fd89cee, 9, 2025-01-27T12:29:30Z)
Android version: 14 (SDK 34; build UE1A.230829.036.A4)
Device brand: google
Device manufacturer: Google
Device name: emu64xa (sdk_gphone64_x86_64)
Device model: sdk_gphone64_x86_64
WebView: Android System WebView 130.0.6723.58
Current time: 2025-01-27T13:37:03.517353+01:00

--------- beginning of main
01-27 13:29:41.530  6168  6168 E studio.deploy: ERROR: Could not remove dir '/data/data/app.mihon.debug/code_cache/.ll/': No such file or directory
01-27 13:29:45.514  7505  7548 E chromium: [0127/122945.514714:ERROR:variations_seed_loader.cc(39)] Seed missing signature.
01-27 13:29:46.327  7505  7538 E OpenGLRenderer: Unable to match the desired swap behavior.
01-27 13:37:02.319  7505  7538 E OpenGLRenderer: Unable to match the desired swap behavior.
Example output when sharing a crash-caused log file
App version: 0.17.1-7064 (dev, 4c71c34a5, 9, 2025-01-27T12:45:51Z)
Android version: 14 (SDK 34; build UE1A.230829.036.A4)
Device brand: google
Device manufacturer: Google
Device name: emu64xa (sdk_gphone64_x86_64)
Device model: sdk_gphone64_x86_64
WebView: Android System WebView 130.0.6723.58
Current time: 2025-01-27T12:46:23.213122Z

java.lang.Throwable: java.lang.RuntimeException: Hello world, Tanya is throwing exceptions.
	at eu.kanade.presentation.more.settings.screen.about.ComposableSingletons$AboutScreenKt$lambda-2$1.invoke$lambda$1$lambda$0(AboutScreen.kt:94)
	at eu.kanade.presentation.more.settings.screen.about.ComposableSingletons$AboutScreenKt$lambda-2$1.$r8$lambda$F6qspzCeHOOwcJ_Hjw8x8213ifg(Unknown Source:0)
	at eu.kanade.presentation.more.settings.screen.about.ComposableSingletons$AboutScreenKt$lambda-2$1$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
	at eu.kanade.presentation.more.settings.widget.BasePreferenceWidgetKt.BasePreferenceWidget$lambda$1$lambda$0(BasePreferenceWidget.kt:53)
	at eu.kanade.presentation.more.settings.widget.BasePreferenceWidgetKt.$r8$lambda$GPx20OMXxFFLCVk8AutgRPyyeG4(Unknown Source:0)
	at eu.kanade.presentation.more.settings.widget.BasePreferenceWidgetKt$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
	at androidx.compose.foundation.ClickableNode$clickPointerInput$3.invoke-k-4lQ0M(Clickable.kt:639)
	at androidx.compose.foundation.ClickableNode$clickPointerInput$3.invoke(Clickable.kt:633)
	at androidx.compose.foundation.gestures.TapGestureDetectorKt$detectTapAndPress$2$1.invokeSuspend(TapGestureDetector.kt:255)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
	at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:163)
	at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:152)
	at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:470)
	at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core(CancellableContinuationImpl.kt:504)
	at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core$default(CancellableContinuationImpl.kt:493)
	at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:359)
	at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine.offerPointerEvent(SuspendingPointerInputFilter.kt:719)
	at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.dispatchPointerEvent(SuspendingPointerInputFilter.kt:598)
	at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.onPointerEvent-H0pRuoY(SuspendingPointerInputFilter.kt:620)
	at androidx.compose.foundation.AbstractClickableNode.onPointerEvent-H0pRuoY(Clickable.kt:1044)
	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:387)
	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
	at androidx.compose.ui.input.pointer.NodeParent.dispatchMainEventPass(HitPathTracker.kt:229)
	at androidx.compose.ui.input.pointer.HitPathTracker.dispatchChanges(HitPathTracker.kt:144)
	at androidx.compose.ui.input.pointer.PointerInputEventProcessor.process-BIzXfog(PointerInputEventProcessor.kt:120)
	at androidx.compose.ui.platform.AndroidComposeView.sendMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1994)
	at androidx.compose.ui.platform.AndroidComposeView.handleMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1945)
	at androidx.compose.ui.platform.AndroidComposeView.dispatchTouchEvent(AndroidComposeView.android.kt:1829)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
	at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:490)
	at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1904)
	at android.app.Activity.dispatchTouchEvent(Activity.java:4377)
	at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
	at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:448)
	at android.view.View.dispatchPointerEvent(View.java:15919)
	at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:7021)
	at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6815)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6229)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6286)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6252)
	at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:6417)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6260)
	at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:6474)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6233)
	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6286)
	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6252)
	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6260)
	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6233)
	at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:9211)
	at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:9162)
	at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:9131)
	at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:9337)
	at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:267)
	at android.os.MessageQueue.nativePollOnce(Native Method)
	at android.os.MessageQueue.next(MessageQueue.java:335)
	at android.os.Looper.loopOnce(Looper.java:162)
	at android.os.Looper.loop(Looper.java:294)
	at android.app.ActivityThread.main(ActivityThread.java:8177)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.ui.platform.MotionDurationScaleImpl@58eb9bf, androidx.compose.runtime.BroadcastFrameClock@317788c, StandaloneCoroutine{Cancelling}@12bd5, AndroidUiDispatcher@798bfea]


--------- beginning of main
01-27 12:46:05.879  5243  5243 E studio.deploy: ERROR: Could not remove dir '/data/data/app.mihon.debug/code_cache/.ll/': No such file or directory
01-27 12:46:09.216  5254  5310 E chromium: [0127/124609.216275:ERROR:variations_seed_loader.cc(39)] Seed missing signature.
01-27 12:46:10.070  5254  5297 E OpenGLRenderer: Unable to match the desired swap behavior.
01-27 12:46:16.013  5254  5254 E GlobalExceptionHandler: java.lang.RuntimeException: Hello world, Tanya is throwing exceptions.
01-27 12:46:16.013  5254  5254 E GlobalExceptionHandler: 	at eu.kanade.presentation.more.settings.screen.about.ComposableSingletons$AboutScreenKt$lambda-2$1.invoke$lambda$1$lambda$0(AboutScreen.kt:94)
01-27 12:46:16.013  5254  5254 E GlobalExceptionHandler: 	at eu.kanade.presentation.more.settings.screen.about.ComposableSingletons$AboutScreenKt$lambda-2$1.$r8$lambda$F6qspzCeHOOwcJ_Hjw8x8213ifg(Unknown Source:0)
01-27 12:46:16.013  5254  5254 E GlobalExceptionHandler: 	at eu.kanade.presentation.more.settings.screen.about.ComposableSingletons$AboutScreenKt$lambda-2$1$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
01-27 12:46:16.013  5254  5254 E GlobalExceptionHandler: 	at eu.kanade.presentation.more.settings.widget.BasePreferenceWidgetKt.BasePreferenceWidget$lambda$1$lambda$0(BasePreferenceWidget.kt:53)
01-27 12:46:16.013  5254  5254 E GlobalExceptionHandler: 	at eu.kanade.presentation.more.settings.widget.BasePreferenceWidgetKt.$r8$lambda$GPx20OMXxFFLCVk8AutgRPyyeG4(Unknown Source:0)
01-27 12:46:16.013  5254  5254 E GlobalExceptionHandler: 	at eu.kanade.presentation.more.settings.widget.BasePreferenceWidgetKt$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
01-27 12:46:16.013  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.foundation.ClickableNode$clickPointerInput$3.invoke-k-4lQ0M(Clickable.kt:639)
01-27 12:46:16.013  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.foundation.ClickableNode$clickPointerInput$3.invoke(Clickable.kt:633)
01-27 12:46:16.013  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.foundation.gestures.TapGestureDetectorKt$detectTapAndPress$2$1.invokeSuspend(TapGestureDetector.kt:255)
01-27 12:46:16.013  5254  5254 E GlobalExceptionHandler: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
01-27 12:46:16.013  5254  5254 E GlobalExceptionHandler: 	at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:163)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:152)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:470)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core(CancellableContinuationImpl.kt:504)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core$default(CancellableContinuationImpl.kt:493)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:359)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine.offerPointerEvent(SuspendingPointerInputFilter.kt:719)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.dispatchPointerEvent(SuspendingPointerInputFilter.kt:598)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.onPointerEvent-H0pRuoY(SuspendingPointerInputFilter.kt:620)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.foundation.AbstractClickableNode.onPointerEvent-H0pRuoY(Clickable.kt:1044)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:387)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.ui.input.pointer.NodeParent.dispatchMainEventPass(HitPathTracker.kt:229)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.ui.input.pointer.HitPathTracker.dispatchChanges(HitPathTracker.kt:144)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.ui.input.pointer.PointerInputEventProcessor.process-BIzXfog(PointerInputEventProcessor.kt:120)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.ui.platform.AndroidComposeView.sendMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1994)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.ui.platform.AndroidComposeView.handleMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1945)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at androidx.compose.ui.platform.AndroidComposeView.dispatchTouchEvent(AndroidComposeView.android.kt:1829)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
01-27 12:46:16.014  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
01-27 12:46:16.015  5254  5254 E GlobalExceptionHandler: 	at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:490)
01-27 12:46:16.015  5254  5254 E GlobalExceptionHandler: 	at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1904)
01-27 12:46:16.015  5254  5254 E GlobalExceptionHandler: 	at android.app.Activity.dispatchTouchEvent(Activity.java:4377)
01-27 12:46:16.015  5254  5254 E GlobalExceptionHandler: 	at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
01-27 12:46:16.015  5254  5254 E GlobalExceptionHandler: 	at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:448)
01-27 12:46:16.015  5254  5254 E GlobalExceptionHandler: 	at android.view.View.dispatchPointerEvent(View.java:15919)
01-27 12:46:16.015  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:7021)
01-27 12:46:16.015  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6815)
01-27 12:46:16.015  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6229)
01-27 12:46:16.015  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6286)
01-27 12:46:16.015  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6252)
01-27 12:46:16.015  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:6417)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6260)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:6474)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6233)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6286)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6252)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6260)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6233)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:9211)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:9162)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:9131)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:9337)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:267)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.os.MessageQueue.nativePollOnce(Native Method)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.os.MessageQueue.next(MessageQueue.java:335)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.os.Looper.loopOnce(Looper.java:162)
01-27 12:46:16.016  5254  5254 E GlobalExceptionHandler: 	at android.os.Looper.loop(Looper.java:294)
01-27 12:46:16.017  5254  5254 E GlobalExceptionHandler: 	at android.app.ActivityThread.main(ActivityThread.java:8177)
01-27 12:46:16.017  5254  5254 E GlobalExceptionHandler: 	at java.lang.reflect.Method.invoke(Native Method)
01-27 12:46:16.017  5254  5254 E GlobalExceptionHandler: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
01-27 12:46:16.017  5254  5254 E GlobalExceptionHandler: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
01-27 12:46:16.017  5254  5254 E GlobalExceptionHandler: 	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.ui.platform.MotionDurationScaleImpl@58eb9bf, androidx.compose.runtime.BroadcastFrameClock@317788c, StandaloneCoroutine{Cancelling}@12bd5, AndroidUiDispatcher@798bfea]
--------- beginning of crash
01-27 12:46:16.047  5254  5254 E AndroidRuntime: FATAL EXCEPTION: main
01-27 12:46:16.047  5254  5254 E AndroidRuntime: Process: app.mihon.debug, PID: 5254
01-27 12:46:16.047  5254  5254 E AndroidRuntime: java.lang.RuntimeException: Hello world, Tanya is throwing exceptions.
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at eu.kanade.presentation.more.settings.screen.about.ComposableSingletons$AboutScreenKt$lambda-2$1.invoke$lambda$1$lambda$0(AboutScreen.kt:94)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at eu.kanade.presentation.more.settings.screen.about.ComposableSingletons$AboutScreenKt$lambda-2$1.$r8$lambda$F6qspzCeHOOwcJ_Hjw8x8213ifg(Unknown Source:0)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at eu.kanade.presentation.more.settings.screen.about.ComposableSingletons$AboutScreenKt$lambda-2$1$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at eu.kanade.presentation.more.settings.widget.BasePreferenceWidgetKt.BasePreferenceWidget$lambda$1$lambda$0(BasePreferenceWidget.kt:53)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at eu.kanade.presentation.more.settings.widget.BasePreferenceWidgetKt.$r8$lambda$GPx20OMXxFFLCVk8AutgRPyyeG4(Unknown Source:0)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at eu.kanade.presentation.more.settings.widget.BasePreferenceWidgetKt$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.foundation.ClickableNode$clickPointerInput$3.invoke-k-4lQ0M(Clickable.kt:639)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.foundation.ClickableNode$clickPointerInput$3.invoke(Clickable.kt:633)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.foundation.gestures.TapGestureDetectorKt$detectTapAndPress$2$1.invokeSuspend(TapGestureDetector.kt:255)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at kotlinx.coroutines.DispatchedTaskKt.resume(DispatchedTask.kt:163)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at kotlinx.coroutines.DispatchedTaskKt.dispatch(DispatchedTask.kt:152)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at kotlinx.coroutines.CancellableContinuationImpl.dispatchResume(CancellableContinuationImpl.kt:470)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core(CancellableContinuationImpl.kt:504)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at kotlinx.coroutines.CancellableContinuationImpl.resumeImpl$kotlinx_coroutines_core$default(CancellableContinuationImpl.kt:493)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at kotlinx.coroutines.CancellableContinuationImpl.resumeWith(CancellableContinuationImpl.kt:359)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl$PointerEventHandlerCoroutine.offerPointerEvent(SuspendingPointerInputFilter.kt:719)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.dispatchPointerEvent(SuspendingPointerInputFilter.kt:598)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.ui.input.pointer.SuspendingPointerInputModifierNodeImpl.onPointerEvent-H0pRuoY(SuspendingPointerInputFilter.kt:620)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.foundation.AbstractClickableNode.onPointerEvent-H0pRuoY(Clickable.kt:1044)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:387)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.ui.input.pointer.Node.dispatchMainEventPass(HitPathTracker.kt:373)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.ui.input.pointer.NodeParent.dispatchMainEventPass(HitPathTracker.kt:229)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.ui.input.pointer.HitPathTracker.dispatchChanges(HitPathTracker.kt:144)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.ui.input.pointer.PointerInputEventProcessor.process-BIzXfog(PointerInputEventProcessor.kt:120)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.ui.platform.AndroidComposeView.sendMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1994)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.ui.platform.AndroidComposeView.handleMotionEvent-8iAsVTc(AndroidComposeView.android.kt:1945)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at androidx.compose.ui.platform.AndroidComposeView.dispatchTouchEvent(AndroidComposeView.android.kt:1829)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
01-27 12:46:16.047  5254  5254 E AndroidRuntime: 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3120)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2801)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:490)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1904)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.app.Activity.dispatchTouchEvent(Activity.java:4377)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:448)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.View.dispatchPointerEvent(View.java:15919)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:7021)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6815)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6229)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6286)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6252)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:6417)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6260)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:6474)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6233)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:6286)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:6252)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:6260)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:6233)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:9211)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:9162)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:9131)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:9337)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:267)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.os.MessageQueue.nativePollOnce(Native Method)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.os.MessageQueue.next(MessageQueue.java:335)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:162)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:294)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:8177)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:552)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:971)
01-27 12:46:16.049  5254  5254 E AndroidRuntime: 	Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [androidx.compose.ui.platform.MotionDurationScaleImpl@58eb9bf, androidx.compose.runtime.BroadcastFrameClock@317788c, StandaloneCoroutine{Cancelling}@12bd5, AndroidUiDispatcher@798bfea]
01-27 12:46:17.636  5438  5473 E chromium: [0127/124617.635878:ERROR:variations_seed_loader.cc(39)] Seed missing signature.
01-27 12:46:19.458  5438  5464 E OpenGLRenderer: Unable to match the desired swap behavior.

I chose a datetime representation with a UTC offset so it's a bit simpler to see how long ago a log entry actually happened.

This should help distinguish log entries that happened recently and
may be related to crashes from older entries that occurred before now.
@AntsyLich
Copy link
Member

Make the format match the log one? Also changelog

@MajorTanya
Copy link
Member Author

Make the format match the log one?

This one? 01-27 13:29:41.530
Seems weird & will require a bigger code change but sure

After some discussion, it was decided to adjust the logcat date and
time display to include the year and the timezone in the logcat
output. This results in a line start like this:

`2025-01-27 18:37:46.662 +0100`

which follows the following DateTimeFormatter pattern:

`yyyy-MM-dd HH:mm:ss.SSS Z`
@MajorTanya
Copy link
Member Author

logcat output now matches:
yyyy-MM-dd HH:mm:ss.SSS Z

@AntsyLich AntsyLich merged commit 503d0be into mihonapp:main Jan 28, 2025
1 check passed
@MajorTanya MajorTanya deleted the add-date-to-debuginfo-and-logs branch January 28, 2025 10:13
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jan 31, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants