Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 343e49e3 authored by Elliott Hughes's avatar Elliott Hughes Committed by Android Git Automerger
Browse files

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

* commit '0296be9d':
  Teach debuggerd the name of SIGTRAP.
parents 2f1cddfd 0296be9d
Loading
Loading
Loading
Loading
+7 −9
Original line number Diff line number Diff line
@@ -366,38 +366,36 @@ static void handle_request(int fd) {
}

static int do_server() {
  int s;
  struct sigaction act;
  int logsocket = -1;

  // debuggerd crashes can't be reported to debuggerd.  Reset all of the
  // crash handlers.
  signal(SIGILL, SIG_DFL);
  // debuggerd crashes can't be reported to debuggerd.
  // Reset all of the crash handlers.
  signal(SIGABRT, SIG_DFL);
  signal(SIGBUS, SIG_DFL);
  signal(SIGFPE, SIG_DFL);
  signal(SIGILL, SIG_DFL);
  signal(SIGSEGV, SIG_DFL);
#ifdef SIGSTKFLT
  signal(SIGSTKFLT, SIG_DFL);
#endif
  signal(SIGTRAP, SIG_DFL);

  // Ignore failed writes to closed sockets
  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) {
    logsocket = -1;
  } else {
    fcntl(logsocket, F_SETFD, FD_CLOEXEC);
  }

  struct sigaction act;
  act.sa_handler = SIG_DFL;
  sigemptyset(&act.sa_mask);
  sigaddset(&act.sa_mask,SIGCHLD);
  act.sa_flags = SA_NOCLDWAIT;
  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)
    return 1;
  fcntl(s, F_SETFD, FD_CLOEXEC);
+5 −4
Original line number Diff line number Diff line
@@ -58,10 +58,10 @@

static bool signal_has_si_addr(int sig) {
  switch (sig) {
    case SIGILL:
    case SIGBUS:
    case SIGFPE:
    case SIGILL:
    case SIGSEGV:
    case SIGBUS:
      return true;
    default:
      return false;
@@ -70,16 +70,17 @@ static bool signal_has_si_addr(int sig) {

static const char* get_signame(int sig) {
  switch(sig) {
    case SIGILL: return "SIGILL";
    case SIGABRT: return "SIGABRT";
    case SIGBUS: return "SIGBUS";
    case SIGFPE: return "SIGFPE";
    case SIGSEGV: return "SIGSEGV";
    case SIGILL: return "SIGILL";
    case SIGPIPE: return "SIGPIPE";
    case SIGSEGV: return "SIGSEGV";
#if defined(SIGSTKFLT)
    case SIGSTKFLT: return "SIGSTKFLT";
#endif
    case SIGSTOP: return "SIGSTOP";
    case SIGTRAP: return "SIGTRAP";
    default: return "?";
  }
}