diff options
Diffstat (limited to 'debuggerd/utility.h')
-rw-r--r-- | debuggerd/utility.h | 44 |
1 files changed, 13 insertions, 31 deletions
diff --git a/debuggerd/utility.h b/debuggerd/utility.h index 39f91cba..136f46d8 100644 --- a/debuggerd/utility.h +++ b/debuggerd/utility.h @@ -20,53 +20,35 @@ #include <stddef.h> #include <stdbool.h> -#include <sys/types.h> -#include <corkscrew/backtrace.h> + +typedef struct { + /* tombstone file descriptor */ + int tfd; + /* if true, does not log anything to the Android logcat */ + bool quiet; +} log_t; /* Log information onto the tombstone. */ -void _LOG(int tfd, bool in_tombstone_only, const char *fmt, ...) +void _LOG(log_t* log, bool in_tombstone_only, const char *fmt, ...) __attribute__ ((format(printf, 3, 4))); -#define LOG(fmt...) _LOG(-1, 0, fmt) +#define LOG(fmt...) _LOG(NULL, 0, fmt) /* Set to 1 for normal debug traces */ #if 0 -#define XLOG(fmt...) _LOG(-1, 0, fmt) +#define XLOG(fmt...) _LOG(NULL, 0, fmt) #else #define XLOG(fmt...) do {} while(0) #endif /* Set to 1 for chatty debug traces. Includes all resolved dynamic symbols */ #if 0 -#define XLOG2(fmt...) _LOG(-1, 0, fmt) +#define XLOG2(fmt...) _LOG(NULL, 0, fmt) #else #define XLOG2(fmt...) do {} while(0) #endif -/* - * Returns true if the specified signal has an associated address. - * (i.e. it sets siginfo_t.si_addr). - */ -bool signal_has_address(int sig); - -/* - * Dumps the backtrace and contents of the stack. - */ -void dump_backtrace_and_stack(const ptrace_context_t* context, int tfd, pid_t tid, bool at_fault); - -/* - * Dumps a few bytes of memory, starting a bit before and ending a bit - * after the specified address. - */ -void dump_memory(int tfd, pid_t tid, uintptr_t addr, bool at_fault); - -/* - * If this isn't clearly a null pointer dereference, dump the - * /proc/maps entries near the fault address. - * - * This only makes sense to do on the thread that crashed. - */ -void dump_nearby_maps(const ptrace_context_t* context, int tfd, pid_t tid); - +int wait_for_signal(pid_t tid, int* total_sleep_time_usec); +void wait_for_stop(pid_t tid, int* total_sleep_time_usec); #endif // _DEBUGGERD_UTILITY_H |