Closed
Description
Description
I noticed that uncaught exceptions don't print information about the exception that cause it and instead print information about a SIGSEGV crash originating in Mono m_class_get_class_kind
function.
Reproduction Steps
- replace all of
src/mono/sample/Android/Program.cs
with simplythrow new System.Exception("boom");
- run the Android sample on a device
- observe the output with
adb logcat -s DEBUG
Expected behavior
The runtime will print a stack trace of the exception which caused the app to crash.
Actual behavior
The app crashes due to null pointer dereference in m_class_get_class_kind
and produces a crash report similar to this:
--------- beginning of crash
05-20 11:13:21.970 15259 15259 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-20 11:13:21.970 15259 15259 F DEBUG : Build fingerprint: 'samsung/***/r5q:12/***/***:user/release-keys'
05-20 11:13:21.970 15259 15259 F DEBUG : Revision: '9'
05-20 11:13:21.970 15259 15259 F DEBUG : ABI: 'arm64'
05-20 11:13:21.970 15259 15259 F DEBUG : Processor: '7'
05-20 11:13:21.970 15259 15259 F DEBUG : Timestamp: 2022-05-20 11:13:21.506480018+0200
05-20 11:13:21.970 15259 15259 F DEBUG : Process uptime: 2s
05-20 11:13:21.970 15259 15259 F DEBUG : Cmdline: net.dot.HelloAndroid
05-20 11:13:21.970 15259 15259 F DEBUG : pid: 15122, tid: 15155, name: .dot.MonoRunner >>> net.dot.HelloAndroid <<<
05-20 11:13:21.970 15259 15259 F DEBUG : uid: 10919
05-20 11:13:21.970 15259 15259 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x1b
05-20 11:13:21.970 15259 15259 F DEBUG : Cause: null pointer dereference
05-20 11:13:21.970 15259 15259 F DEBUG : x0 0000000000000000 x1 0000007a2e001950 x2 0000000000000000 x3 0000007a83d8eae0
05-20 11:13:21.970 15259 15259 F DEBUG : x4 0000007a83d8ea00 x5 0000000000000000 x6 0000000000000000 x7 0000007a83d8ea68
05-20 11:13:21.970 15259 15259 F DEBUG : x8 0000000000000000 x9 0000007a83d8eae0 x10 0000007a2f6fac9c x11 0000000000000000
05-20 11:13:21.970 15259 15259 F DEBUG : x12 0000007a2f8a110c x13 0000007a83d8ea68 x14 0000000000000010 x15 0000000000000000
05-20 11:13:21.970 15259 15259 F DEBUG : x16 0000007a2faef700 x17 0000007a2f79531c x18 0000007a2f672000 x19 0000007a83d8e7f0
05-20 11:13:21.970 15259 15259 F DEBUG : x20 0000000000000000 x21 0000007a9fafc128 x22 0000000000000000 x23 0000007a9ad710b0
05-20 11:13:21.970 15259 15259 F DEBUG : x24 0000007a9fafc128 x25 0000000000000005 x26 0000000000000033 x27 0000007a83d92000
05-20 11:13:21.970 15259 15259 F DEBUG : x28 0000007a83d90fd0 x29 0000007a83d8e7a0
05-20 11:13:21.970 15259 15259 F DEBUG : lr 0000007a2f941e10 sp 0000007a83d8e770 pc 0000007a2f795328 pst 0000000060000000
05-20 11:13:21.970 15259 15259 F DEBUG : backtrace:
05-20 11:13:21.970 15259 15259 F DEBUG : #00 pc 00000000000ff328 /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonosgen-2.0.so (m_class_get_class_kind+12) (BuildId: e728547a686aba14555a971a328b7bbc08827ab0)
05-20 11:13:21.970 15259 15259 F DEBUG : #01 pc 00000000002abe0c /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonosgen-2.0.so (BuildId: e728547a686aba14555a971a328b7bbc08827ab0)
05-20 11:13:21.970 15259 15259 F DEBUG : #02 pc 00000000002a53d0 /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonosgen-2.0.so (BuildId: e728547a686aba14555a971a328b7bbc08827ab0)
05-20 11:13:21.970 15259 15259 F DEBUG : #03 pc 00000000002a52f4 /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonosgen-2.0.so (BuildId: e728547a686aba14555a971a328b7bbc08827ab0)
05-20 11:13:21.970 15259 15259 F DEBUG : #04 pc 00000000002a8624 /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonosgen-2.0.so (BuildId: e728547a686aba14555a971a328b7bbc08827ab0)
05-20 11:13:21.970 15259 15259 F DEBUG : #05 pc 000000000016f640 /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonosgen-2.0.so (BuildId: e728547a686aba14555a971a328b7bbc08827ab0)
05-20 11:13:21.970 15259 15259 F DEBUG : #06 pc 000000000016be04 /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonosgen-2.0.so (mono_runtime_try_invoke+148) (BuildId: e728547a686aba14555a971a328b7bbc08827ab0)
05-20 11:13:21.970 15259 15259 F DEBUG : #07 pc 000000000016f51c /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonosgen-2.0.so (mono_runtime_invoke+88) (BuildId: e728547a686aba14555a971a328b7bbc08827ab0)
05-20 11:13:21.970 15259 15259 F DEBUG : #08 pc 0000000000002f6c /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonodroid.so (mono_droid_fetch_exception_property+176) (BuildId: 498ea41a40d288729212a22824c05ba93dcacfb0)
05-20 11:13:21.970 15259 15259 F DEBUG : #09 pc 0000000000001ee0 /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonodroid.so (mono_droid_fetch_exception_property_string+48) (BuildId: 498ea41a40d288729212a22824c05ba93dcacfb0)
05-20 11:13:21.970 15259 15259 F DEBUG : #10 pc 0000000000001e48 /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonodroid.so (unhandled_exception_handler+108) (BuildId: 498ea41a40d288729212a22824c05ba93dcacfb0)
05-20 11:13:21.970 15259 15259 F DEBUG : #11 pc 000000000010f7a8 /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonosgen-2.0.so (BuildId: e728547a686aba14555a971a328b7bbc08827ab0)
05-20 11:13:21.970 15259 15259 F DEBUG : #12 pc 0000000000347530 /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonosgen-2.0.so (BuildId: e728547a686aba14555a971a328b7bbc08827ab0)
05-20 11:13:21.970 15259 15259 F DEBUG : #13 pc 0000000000347360 /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonosgen-2.0.so (mono_jit_exec+68) (BuildId: e728547a686aba14555a971a328b7bbc08827ab0)
05-20 11:13:21.970 15259 15259 F DEBUG : #14 pc 0000000000002328 /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonodroid.so (mono_droid_runtime_init+856) (BuildId: 498ea41a40d288729212a22824c05ba93dcacfb0)
05-20 11:13:21.970 15259 15259 F DEBUG : #15 pc 0000000000002cb4 /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/lib/arm64/libmonodroid.so (Java_net_dot_MonoRunner_initRuntime+464) (BuildId: 498ea41a40d288729212a22824c05ba93dcacfb0)
05-20 11:13:21.970 15259 15259 F DEBUG : #16 pc 00000000002d4044 /apex/com.android.art/lib64/libart.so (art_quick_generic_jni_trampoline+148) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.970 15259 15259 F DEBUG : #17 pc 00000000002ca9e8 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.970 15259 15259 F DEBUG : #18 pc 00000000002ee6b8 /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+320) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.971 15259 15259 F DEBUG : #19 pc 000000000040ade4 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+820) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.971 15259 15259 F DEBUG : #20 pc 000000000076d4b8 /apex/com.android.art/lib64/libart.so (MterpInvokeStatic+3812) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.971 15259 15259 F DEBUG : #21 pc 00000000002c5014 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_static+20) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.971 15259 15259 F DEBUG : #22 pc 0000000000000ae2 [anon:dalvik-classes.dex extracted in memory from /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/base.apk] (net.dot.MonoRunner.initialize+154)
05-20 11:13:21.971 15259 15259 F DEBUG : #23 pc 000000000027d840 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.3351068054637636664)+644) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.971 15259 15259 F DEBUG : #24 pc 000000000027c9e8 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+1176) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.971 15259 15259 F DEBUG : #25 pc 00000000002d4178 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.971 15259 15259 F DEBUG : #26 pc 0000000000209188 /apex/com.android.art/lib64/libart.so (nterp_helper+152) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.971 15259 15259 F DEBUG : #27 pc 0000000000000c98 [anon:dalvik-classes.dex extracted in memory from /data/app/~~pAXIZ4wu_QKJoR6fNnsSOQ==/net.dot.HelloAndroid-RrZWlifwfWwi3eQHY2DfBQ==/base.apk] (net.dot.MonoRunner.onStart+56)
05-20 11:13:21.971 15259 15259 F DEBUG : #28 pc 000000000020a044 /apex/com.android.art/lib64/libart.so (nterp_helper+3924) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.971 15259 15259 F DEBUG : #29 pc 000000000024684a /system/framework/framework.jar (android.app.Instrumentation$InstrumentationThread.run+94)
05-20 11:13:21.971 15259 15259 F DEBUG : #30 pc 00000000002ca764 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.971 15259 15259 F DEBUG : #31 pc 000000000030e980 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+156) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.971 15259 15259 F DEBUG : #32 pc 00000000003c1db4 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeVirtualOrInterfaceWithJValues<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, jvalue const*)+380) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.971 15259 15259 F DEBUG : #33 pc 00000000004578ec /apex/com.android.art/lib64/libart.so (art::Thread::CreateCallback(void*)+992) (BuildId: 34e3dd028e2e682b63a512d6a4f1b5eb)
05-20 11:13:21.971 15259 15259 F DEBUG : #34 pc 00000000000f10f4 /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+264) (BuildId: 6c64ba11d7f9282109f191c2bf3f6646)
05-20 11:13:21.971 15259 15259 F DEBUG : #35 pc 000000000008d754 /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+68) (BuildId: 6c64ba11d7f9282109f191c2bf3f6646)
Regression?
No response
Known Workarounds
No response
Configuration
- up-to-date
main
(3914bcc230134ec3e1c9be903c6bd8ff60d92501
) - Android 12
EDIT:
The variables in the android sample Makefile:
MONO_CONFIG=Debug
MONO_ARCH?=arm64
DOTNET := ../../../../dotnet.sh
USE_LLVM=false
AOT=false
AOT_WITH_LIBRARY_FILES=false
INTERP=false
DEPLOY_AND_RUN?=true
Other information
No response