debuggerd can't handle debuggerd crashes
When a process receives a fatal signal, it connects to debuggerd and initiates a conversation over a socket. When the crashing process is debuggerd, the conversation stalls forever, and you stop getting native crash details. This resets the signal handlers to SIG_DFL, so that debuggerd simply crashes and gets restarted. Bug 5035703 Change-Id: Ie081d710d046f701bca7e7d8ea3e1d24766d9f61
This commit is contained in:
parent
c349636c7c
commit
44e12eceec
1 changed files with 12 additions and 0 deletions
|
@ -695,6 +695,18 @@ int main()
|
|||
struct sigaction act;
|
||||
int logsocket = -1;
|
||||
|
||||
/*
|
||||
* debuggerd crashes can't be reported to debuggerd. Reset all of the
|
||||
* crash handlers.
|
||||
*/
|
||||
signal(SIGILL, SIG_DFL);
|
||||
signal(SIGABRT, SIG_DFL);
|
||||
signal(SIGBUS, SIG_DFL);
|
||||
signal(SIGFPE, SIG_DFL);
|
||||
signal(SIGSEGV, SIG_DFL);
|
||||
signal(SIGSTKFLT, SIG_DFL);
|
||||
signal(SIGPIPE, SIG_DFL);
|
||||
|
||||
logsocket = socket_local_client("logd",
|
||||
ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_DGRAM);
|
||||
if(logsocket < 0) {
|
||||
|
|
Loading…
Reference in a new issue