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:
Andy McFadden 2011-07-29 12:36:47 -07:00
parent c349636c7c
commit 44e12eceec
1 changed files with 12 additions and 0 deletions

View File

@ -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) {