am 343e49e3: am 0296be9d: Merge "Teach debuggerd the name of SIGTRAP."

* commit '343e49e3343817ec3adf1145039cb4e5d143674a':
  Teach debuggerd the name of SIGTRAP.
This commit is contained in:
Elliott Hughes 2014-05-17 07:53:01 +00:00 committed by Android Git Automerger
commit f6aa4863a2
2 changed files with 13 additions and 14 deletions

View file

@ -366,38 +366,36 @@ static void handle_request(int fd) {
} }
static int do_server() { static int do_server() {
int s; // debuggerd crashes can't be reported to debuggerd.
struct sigaction act; // Reset all of the crash handlers.
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(SIGABRT, SIG_DFL);
signal(SIGBUS, SIG_DFL); signal(SIGBUS, SIG_DFL);
signal(SIGFPE, SIG_DFL); signal(SIGFPE, SIG_DFL);
signal(SIGILL, SIG_DFL);
signal(SIGSEGV, SIG_DFL); signal(SIGSEGV, SIG_DFL);
#ifdef SIGSTKFLT #ifdef SIGSTKFLT
signal(SIGSTKFLT, SIG_DFL); signal(SIGSTKFLT, SIG_DFL);
#endif #endif
signal(SIGTRAP, SIG_DFL);
// Ignore failed writes to closed sockets // Ignore failed writes to closed sockets
signal(SIGPIPE, SIG_IGN); signal(SIGPIPE, SIG_IGN);
logsocket = socket_local_client("logd", ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_DGRAM); int logsocket = socket_local_client("logd", ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_DGRAM);
if (logsocket < 0) { if (logsocket < 0) {
logsocket = -1; logsocket = -1;
} else { } else {
fcntl(logsocket, F_SETFD, FD_CLOEXEC); fcntl(logsocket, F_SETFD, FD_CLOEXEC);
} }
struct sigaction act;
act.sa_handler = SIG_DFL; act.sa_handler = SIG_DFL;
sigemptyset(&act.sa_mask); sigemptyset(&act.sa_mask);
sigaddset(&act.sa_mask,SIGCHLD); sigaddset(&act.sa_mask,SIGCHLD);
act.sa_flags = SA_NOCLDWAIT; act.sa_flags = SA_NOCLDWAIT;
sigaction(SIGCHLD, &act, 0); sigaction(SIGCHLD, &act, 0);
s = socket_local_server(DEBUGGER_SOCKET_NAME, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM); int s = socket_local_server(DEBUGGER_SOCKET_NAME, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
if (s < 0) if (s < 0)
return 1; return 1;
fcntl(s, F_SETFD, FD_CLOEXEC); fcntl(s, F_SETFD, FD_CLOEXEC);

View file

@ -58,10 +58,10 @@
static bool signal_has_si_addr(int sig) { static bool signal_has_si_addr(int sig) {
switch (sig) { switch (sig) {
case SIGILL:
case SIGFPE:
case SIGSEGV:
case SIGBUS: case SIGBUS:
case SIGFPE:
case SIGILL:
case SIGSEGV:
return true; return true;
default: default:
return false; return false;
@ -70,16 +70,17 @@ static bool signal_has_si_addr(int sig) {
static const char* get_signame(int sig) { static const char* get_signame(int sig) {
switch(sig) { switch(sig) {
case SIGILL: return "SIGILL";
case SIGABRT: return "SIGABRT"; case SIGABRT: return "SIGABRT";
case SIGBUS: return "SIGBUS"; case SIGBUS: return "SIGBUS";
case SIGFPE: return "SIGFPE"; case SIGFPE: return "SIGFPE";
case SIGSEGV: return "SIGSEGV"; case SIGILL: return "SIGILL";
case SIGPIPE: return "SIGPIPE"; case SIGPIPE: return "SIGPIPE";
case SIGSEGV: return "SIGSEGV";
#if defined(SIGSTKFLT) #if defined(SIGSTKFLT)
case SIGSTKFLT: return "SIGSTKFLT"; case SIGSTKFLT: return "SIGSTKFLT";
#endif #endif
case SIGSTOP: return "SIGSTOP"; case SIGSTOP: return "SIGSTOP";
case SIGTRAP: return "SIGTRAP";
default: return "?"; default: return "?";
} }
} }