Merge "debuggerd: tombstone: suppress logger request for logd process"

This commit is contained in:
Mark Salyzyn 2014-07-29 23:10:11 +00:00 committed by Gerrit Code Review
commit cddc97cb3a
2 changed files with 13 additions and 1 deletions

View file

@ -210,6 +210,12 @@ static void dump_thread_info(log_t* log, pid_t pid, pid_t tid) {
}
}
}
// Blacklist logd, logd.reader, logd.writer, logd.auditd, logd.control ...
static const char logd[] = "logd";
if (!strncmp(threadname, logd, sizeof(logd) - 1)
&& (!threadname[sizeof(logd) - 1] || (threadname[sizeof(logd) - 1] == '.'))) {
log->should_retrieve_logcat = false;
}
char procnamebuf[1024];
char* procname = NULL;
@ -450,6 +456,10 @@ static void dump_log_file(
bool first = true;
struct logger_list* logger_list;
if (!log->should_retrieve_logcat) {
return;
}
logger_list = android_logger_list_open(
android_name_to_log_id(filename), O_RDONLY | O_NONBLOCK, tail, pid);

View file

@ -46,9 +46,11 @@ struct log_t{
pid_t crashed_tid;
// The tid of the thread we are currently working with.
pid_t current_tid;
// logd daemon crash, can block asking for logcat data, allow suppression.
bool should_retrieve_logcat;
log_t()
: tfd(-1), amfd(-1), crashed_tid(-1), current_tid(-1) {}
: tfd(-1), amfd(-1), crashed_tid(-1), current_tid(-1), should_retrieve_logcat(true) {}
};
// List of types of logs to simplify the logging decision in _LOG