static _Unwind_Reason_Code backtrace_helper (struct _Unwind_Context *ctx, void *a) { struct trace_arg *arg = a; assert (unwind_getip(ctx) != NULL); /* We are first called with address in the __backtrace function. Skip it. */ if (arg->cnt != -1) arg->array[arg->cnt] = (void *) unwind_getip (ctx); if (++arg->cnt == arg->size) return _URC_END_OF_STACK; return _URC_NO_REASON; }
static _Unwind_Reason_Code backtrace_helper (struct _Unwind_Context *ctx, void *a) { struct trace_arg *arg = a; /* We are first called with address in the __backtrace function. Skip it. */ if (arg->cnt != -1) arg->array[arg->cnt] = (void *) unwind_getip (ctx); if (++arg->cnt == arg->size) return _URC_END_OF_STACK; /* %fp is DWARF2 register 14 on M68K. */ arg->lastfp = (void *) unwind_getgr (ctx, 14); arg->lastsp = (void *) unwind_getcfa (ctx); return _URC_NO_REASON; }