coffeecatch
coffeecatch copied to clipboard
Can not call abort() in coffeecatch_signal_pass is ok?
I enable coffeecatch in my thread. When other thread crashed, is captured by coffeecatch and call abort() in coffeecatch_signal_pass, receive android crash stacktrace as:
02-16 11:46:33.521: A/DEBUG(288): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 02-16 11:46:33.522: A/DEBUG(288): Build fingerprint: 'Xiaomi/cancro_wc_lte/cancro:6.0.1/MMB29M/7.2.9:user/release-keys' 02-16 11:46:33.522: A/DEBUG(288): Revision: '0' 02-16 11:46:33.522: A/DEBUG(288): ABI: 'arm' 02-16 11:46:33.523: A/DEBUG(288): pid: 13619, tid: 13619, name: test.example.sk >>> test.example.sk <<< 02-16 11:46:33.523: A/DEBUG(288): signal 6 (SIGABRT), code 1 (?), fault addr -------- 02-16 11:46:33.563: A/DEBUG(288): r0 00000000 r1 00003533 r2 00000006 r3 b6f53b7c 02-16 11:46:33.564: A/DEBUG(288): r4 b6f53b84 r5 b6f53b34 r6 00000002 r7 0000010c 02-16 11:46:33.564: A/DEBUG(288): r8 b6f32c4c r9 b4abf820 sl 00000000 fp b6f32c34 02-16 11:46:33.565: A/DEBUG(288): ip 00000006 sp b6f32ba0 lr b6cb0c69 pc b6cb3058 cpsr 400e0010 02-16 11:46:33.602: A/DEBUG(288): backtrace: 02-16 11:46:33.602: A/DEBUG(288): #00 pc 00042058 /system/lib/libc.so (tgkill+12) 02-16 11:46:33.603: A/DEBUG(288): #01 pc 0003fc65 /system/lib/libc.so (pthread_kill+32) 02-16 11:46:33.603: A/DEBUG(288): #02 pc 0001c403 /system/lib/libc.so (raise+10) 02-16 11:46:33.604: A/DEBUG(288): #03 pc 000195b5 /system/lib/libc.so (__libc_android_abort+34) 02-16 11:46:33.604: A/DEBUG(288): #04 pc 00017508 /system/lib/libc.so (abort+4) 02-16 11:46:33.605: A/DEBUG(288): #05 pc 000121eb /data/app/test.example.sk-2/lib/arm/libsk.so 02-16 11:46:33.605: A/DEBUG(288): #06 pc 0036cc9b /system/lib/libart.so (_ZN3art12FaultManager11HandleFaultEiP7siginfoPv+530) 02-16 11:46:33.606: A/DEBUG(288): #07 pc 0001756c /system/lib/libc.so 02-16 11:46:34.539: A/DEBUG(288): Tombstone written to: /data/tombstones/tombstone_05 02-16 11:46:34.539: E/DEBUG(288): AM write failed: Broken pipe
I comment out abort() and found crash stacktrace at real crash position: //DEBUG(print("calling abort()\n")); //signal(SIGABRT, SIG_DFL); //abort();