What is signal 33 in Android Lollipop?

I recently saw signal 33, but could not find an explanation. Usually the signal is applied to the system_server process, but I could not find details about why it is applied or which process applies it. Also, this was never seen in any versions prior to Lollipop. So, what changes have been made to the framework with Lollipop and beyond?

+4
source share
1 answer

Android from Lollipop and a stock signal of up 33 (__SIGRTMIN + 1) for a signal called THREAD_SIGNAL, as you can see at https://android.googlesource.com/platform/system/core/+/android-5.0.0_r2/libbacktrace/ BacktraceThread.h # 34

It uses a signal handler in order to obtain information about the return (registers and, most importantly, the thread stack pointer) of a given stream.

Check out https://android.googlesource.com/platform/system/core/+/android-5.0.0_r2/libbacktrace/BacktraceThread.cpp#158 to understand how it sets up the signal handler and passes the signal.

Typically, debuggerd is the one that retrieves the backtrace when the process crashes, but there are also shells for any project that wants to get process return information, for example, to reset the state of the process for profiling. ART is one such project.

+1
source

All Articles