Lines Matching defs:log

131 static void dump_revision_info(log_t* log)
137 _LOG(log, false, "Revision: '%s'\n", revision);
140 static void dump_build_info(log_t* log)
146 _LOG(log, false, "Build fingerprint: '%s'\n", fingerprint);
149 static void dump_fault_addr(log_t* log, pid_t tid, int sig)
155 _LOG(log, false, "cannot get siginfo: %s\n", strerror(errno));
157 _LOG(log, false, "signal %d (%s), code %d (%s), fault addr %08x\n",
162 _LOG(log, false, "signal %d (%s), code %d (%s), fault addr --------\n",
167 static void dump_thread_info(log_t* log, pid_t pid, pid_t tid, bool at_fault) {
195 _LOG(log, false, "pid: %d, tid: %d, name: %s >>> %s <<<\n", pid, tid,
199 _LOG(log, true, "pid: %d, tid: %d, name: %s\n", pid, tid,
205 log_t* log, pid_t tid __attribute((unused)), bool at_fault,
207 _LOG(log, !at_fault, "\nbacktrace:\n");
215 _LOG(log, !at_fault, " %s\n", line);
220 static void dump_stack_segment(const ptrace_context_t* context, log_t* log, pid_t tid,
238 _LOG(log, only_in_tombstone, " #%02d %08x %08x %s (%s+%u)\n",
241 _LOG(log, only_in_tombstone, " #%02d %08x %08x %s (%s)\n",
246 _LOG(log, only_in_tombstone, " %08x %08x %s (%s+%u)\n",
249 _LOG(log, only_in_tombstone, " %08x %08x %s (%s)\n",
256 _LOG(log, only_in_tombstone, " #%02d %08x %08x %s\n",
259 _LOG(log, only_in_tombstone, " %08x %08x %s\n",
268 static void dump_stack(const ptrace_context_t* context, log_t* log, pid_t tid, bool at_fault,
285 _LOG(log, !at_fault, "\nstack:\n");
290 dump_stack_segment(context, log, tid, only_in_tombstone, &sp, STACK_WORDS, -1);
293 // Only log the first 3 frames, put the rest in the tombstone.
297 _LOG(log, only_in_tombstone, " ........ ........\n");
304 dump_stack_segment(context, log, tid, only_in_tombstone, &sp, STACK_WORDS, i);
306 _LOG(log, only_in_tombstone, " ........ ........\n");
315 dump_stack_segment(context, log, tid, only_in_tombstone, &sp, words, i);
320 static void dump_backtrace_and_stack(const ptrace_context_t* context, log_t* log, pid_t tid,
325 dump_backtrace(context, log, tid, at_fault, backtrace, frames);
326 dump_stack(context, log, tid, at_fault, backtrace, frames);
330 static void dump_nearby_maps(const ptrace_context_t* context, log_t* log, pid_t tid) {
334 _LOG(log, false, "cannot get siginfo for %d: %s\n",
348 _LOG(log, false, "\nmemory map around fault addr %08x:\n", (int)si.si_addr);
377 _LOG(log, false, " %08x-%08x %s\n", next->start, next->end, next->name);
379 _LOG(log, false, " (no map below)\n");
382 _LOG(log, false, " %08x-%08x %s\n", map->start, map->end, map->name);
384 _LOG(log, false, " (no map for address)\n");
387 _LOG(log, false, " %08x-%08x %s\n", prev->start, prev->end, prev->name);
389 _LOG(log, false, " (no map above)\n");
393 static void dump_thread(const ptrace_context_t* context, log_t* log, pid_t tid, bool at_fault,
397 dump_registers(context, log, tid, at_fault);
398 dump_backtrace_and_stack(context, log, tid, at_fault);
400 dump_memory_and_code(context, log, tid, at_fault);
401 dump_nearby_maps(context, log, tid);
407 log_t* log, pid_t pid, pid_t tid, int* total_sleep_time_usec) {
439 _LOG(log, true, "--- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---\n");
440 dump_thread_info(log, pid, new_tid, false);
441 dump_thread(context, log, new_tid, false, total_sleep_time_usec);
454 * Reads the contents of the specified log device, filters out the entries
459 static void dump_log_file(log_t* log, pid_t pid, const char* filename,
492 _LOG(log, true, "Error while reading log: %s\n",
497 _LOG(log, true, "Got zero bytes while reading log: %s\n",
517 _LOG(log, true, "--------- %slog %s\n",
559 _LOG(log, true, "%s.%03d %5d %5d %c %-8s: %s\n",
579 _LOG(log, true, "%s\n", shortLog[shortLogNext]);
589 * "system" and "main" log devices. Ideally we'd interleave the output.
591 static void dump_logs(log_t* log, pid_t pid, bool tailOnly)
593 dump_log_file(log, pid, "/dev/log/system", tailOnly);
594 dump_log_file(log, pid, "/dev/log/main", tailOnly);
600 static bool dump_crash(log_t* log, pid_t pid, pid_t tid, int signal,
603 /* don't copy log messages to tombstone unless this is a dev device */
608 _LOG(log, false,
610 dump_build_info(log);
611 dump_revision_info(log);
612 dump_thread_info(log, pid, tid, true);
614 dump_fault_addr(log, tid, signal);
618 dump_thread(context, log, tid, true, total_sleep_time_usec);
621 dump_logs(log, pid, true);
626 detach_failed = dump_sibling_thread_report(context, log, pid, tid, total_sleep_time_usec);
632 dump_logs(log, pid, false);
713 log_t log;
714 log.tfd = fd;
715 log.quiet = quiet;
716 *detach_failed = dump_crash(&log, pid, tid, signal, dump_sibling_threads,