什么是Android Lollipop中的信号33?

我最近观察到信号33崩溃,但无法找到解释.该信号通常应用于system_server进程,但我找不到有关应用它的原因或应用该进程的详细信息.此外,这在Lollipop之前的任何版本中都没有出现过.那么,从Lollipop开始对框架做了哪些改变? 最佳答案 来自Lollipop的
Android和up保留信号33(__SIGRTMIN 1),用于发送一个名为THREAD_SIGNAL的信号,如您在
https://android.googlesource.com/platform/system/core/+/android-5.0.0_r2/libbacktrace/BacktraceThread.h#34中所见

它应用信号处理程序以获取给定线程的回溯信息(寄存器,最重要的是线程堆栈指针).

检查https://android.googlesource.com/platform/system/core/+/android-5.0.0_r2/libbacktrace/BacktraceThread.cpp#158以了解它如何设置信号处理程序并传递信号.

通常,debuggerd是在进程崩溃时检索回溯的那个,但是也有可用于任何想要检索进程回溯信息的项目的包装器,例如用于转储进程的状态以进行性能分析. ART是这个项目之一.

点赞