Skip to content
Snippets Groups Projects
Commit 6cd85e2a authored by android-build-team Robot's avatar android-build-team Robot
Browse files

release-request-4be129b1-3f50-40d3-bbd4-30899b786745-for-git_oc-dr1-release-42...

release-request-4be129b1-3f50-40d3-bbd4-30899b786745-for-git_oc-dr1-release-4273712 snap-temp-L56000000093068720

Change-Id: I92f103a2f8f36715a56d4985302afd0e9e5fcdf8
parents 9ce21c87 30b69aab
Branches
Tags
No related merge requests found
...@@ -116,6 +116,26 @@ static void __noreturn __printflike(1, 2) fatal_errno(const char* fmt, ...) { ...@@ -116,6 +116,26 @@ static void __noreturn __printflike(1, 2) fatal_errno(const char* fmt, ...) {
fatal("%s: %s", buf, strerror(err)); fatal("%s: %s", buf, strerror(err));
} }
static bool get_main_thread_name(char* buf, size_t len) {
int fd = open("/proc/self/comm", O_RDONLY | O_CLOEXEC);
if (fd == -1) {
return false;
}
ssize_t rc = read(fd, buf, len);
close(fd);
if (rc == -1) {
return false;
} else if (rc == 0) {
// Should never happen?
return false;
}
// There's a trailing newline, replace it with a NUL.
buf[rc - 1] = '\0';
return true;
}
/* /*
* Writes a summary of the signal to the log file. We do this so that, if * Writes a summary of the signal to the log file. We do this so that, if
* for some reason we're not able to contact debuggerd, there is still some * for some reason we're not able to contact debuggerd, there is still some
...@@ -188,8 +208,14 @@ static void log_signal_summary(int signum, const siginfo_t* info) { ...@@ -188,8 +208,14 @@ static void log_signal_summary(int signum, const siginfo_t* info) {
} }
} }
async_safe_format_log(ANDROID_LOG_FATAL, "libc", "Fatal signal %d (%s)%s%s in tid %d (%s)", char main_thread_name[MAX_TASK_NAME_LEN + 1];
signum, signal_name, code_desc, addr_desc, __gettid(), thread_name); if (!get_main_thread_name(main_thread_name, sizeof(main_thread_name))) {
strncpy(main_thread_name, "<unknown>", sizeof(main_thread_name));
}
async_safe_format_log(
ANDROID_LOG_FATAL, "libc", "Fatal signal %d (%s)%s%s in tid %d (%s), pid %d (%s)", signum,
signal_name, code_desc, addr_desc, __gettid(), thread_name, __getpid(), main_thread_name);
} }
/* /*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment