void print_stack(const char *label) { printf("%s: stack = ", label); const char *sep = ""; obj_t *fp; for (fp = FRAME; fp; fp = frame_get_parent(fp), sep = " -> ") { C_procedure_t *cont = frame_get_continuation(fp); obj_t *subj = frame_get_subject(fp); printf("%s%ls", sep, block_name(cont, NIL)); if (cont || subj) printf_unchecked("[%O]", subj); } printf("\n"); }
/** Map object to slab structure */ static slab_t * obj2slab(void *obj) { return (slab_t *) frame_get_parent(ADDR2PFN(KA2PA(obj))); }