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

Commit 80f59698 authored by Michael Wright's avatar Michael Wright
Browse files

Print ABI in backtraces.

This lets the stack tool figure out which toolchain to use
automatically.

Change-Id: Ia235d6904622423fe6fbc7b0315a1861e52a41ad
parent 07703339
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -49,8 +49,9 @@ static void dump_process_header(log_t* log, pid_t pid) {
  struct tm tm;
  localtime_r(&t, &tm);
  char timestr[64];
  _LOG(log, logtype::BACKTRACE, "\n\nABI: '%s'\n", ABI_STRING);
  strftime(timestr, sizeof(timestr), "%F %T", &tm);
  _LOG(log, logtype::BACKTRACE, "\n\n----- pid %d at %s -----\n", pid, timestr);
  _LOG(log, logtype::BACKTRACE, "\n----- pid %d at %s -----\n", pid, timestr);

  if (procname) {
    _LOG(log, logtype::BACKTRACE, "Cmd line: %s\n", procname);
+0 −15
Original line number Diff line number Diff line
@@ -58,21 +58,6 @@
// Must match the path defined in NativeCrashListener.java
#define NCRASH_SOCKET_PATH "/data/system/ndebugsocket"

// Figure out the abi based on defined macros.
#if defined(__arm__)
#define ABI_STRING "arm"
#elif defined(__aarch64__)
#define ABI_STRING "arm64"
#elif defined(__mips__)
#define ABI_STRING "mips"
#elif defined(__i386__)
#define ABI_STRING "x86"
#elif defined(__x86_64__)
#define ABI_STRING "x86_64"
#else
#error "Unsupported ABI"
#endif

static bool signal_has_si_addr(int sig) {
  switch (sig) {
    case SIGBUS:
+16 −0
Original line number Diff line number Diff line
@@ -21,6 +21,22 @@
#include <stdbool.h>
#include <sys/types.h>

// Figure out the abi based on defined macros.
#if defined(__arm__)
#define ABI_STRING "arm"
#elif defined(__aarch64__)
#define ABI_STRING "arm64"
#elif defined(__mips__)
#define ABI_STRING "mips"
#elif defined(__i386__)
#define ABI_STRING "x86"
#elif defined(__x86_64__)
#define ABI_STRING "x86_64"
#else
#error "Unsupported ABI"
#endif


typedef struct {
    /* tombstone file descriptor */
    int tfd;