Skip to content

Debugging

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

Unwinds from the caller’s own frame

Expansion
#define stack_trace_save(entries, max) \
    stack_unwind((uint64_t) ci_frame_address(0), (entries), (max))