什么是Android Lollipop中的信号33?

时间:2015-08-07 14:56:03

标签: android signals android-source android-framework

我最近发现信号33崩溃,但无法找到解释。信号通常应用于system_server进程,但我无法找到有关应用原因或应用该进程的详细信息。此外,这在Lollipop之前的任何版本中都没有出现过。那么,从Lollipop开始对框架做了哪些改变?

1 个答案:

答案 0 :(得分:2)

来自Lollipop的Android并向上保留信号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是这个项目之一。