1 657
Subscribers
+624 hours
+797 days
+22730 days
Posts Archive
1 657
New push to GitHub!
fix: 崩溃日志处理器抢占 ART 的 SIGSEGV/SIGBUS 导致宿主崩溃 Android ART 会将 SIGSEGV / SIGBUS 用于部分可恢复的运行时机制,其中 UFFD GC 会通过 SIGBUS 处理 userfaultfd 相关的堆 fault,编译代码的隐式空指针检查也 依赖 ART 的 SIGSEGV fault handling。 原有的 crash handler 通过 sigaction 抢占了 SIGSEGV/SIGBUS,并使用 restore + raise(sig) 重新触发信号。该方式无法保留原始 fault 的 siginfo_t / ucontext_t,重新产生的信号表现为 SI_USER,ART 因而无法获得 原始 fault address、PC、寄存器等上下文,也无法执行原本的 fault recovery。by
owo233
See commit detail here