Skip to content

Debugging

void debug_print_registers();
void debug_print_stack();
void debug_print_memory(void *addr, size_t size);
void debug_print_stack_from(uint64_t *start, size_t max_scan);
size_t stack_unwind(uint64_t frame, uint64_t *entries, size_t max);
void debug_print_stack_trace(const uint64_t *entries, size_t nr);
const char * debug_symbolize(uint64_t addr, uint64_t *out_off);
const char * debug_line_for(uint64_t addr, uint32_t *out_line);
bool debug_syms_present(void);
#define STACK_TRACE_MAX_DEPTH 64
#define stack_trace_save(entries, max) \
    stack_unwind((uint64_t) __builtin_frame_address(0), (entries), (max))