static void dumpproc(register struct proc* pp) { register struct list* p; register struct proc* cp; if (pp->parent) sfputc(sfstdout, '\n'); sfprintf(sfstdout, "process %s pid %d ppid %d start %lu finish %lu status %d\n", pp->pwd, pp->pid, pp->parent ? pp->parent->pid : 0, pp->start, pp->finish, pp->status); for (p = pp->root->prereqs; p; p = p->next) dumprule(p->rule); for (cp = pp->child; cp; cp = cp->sibling) dumpproc(cp); }
static void dumpcover(Node p, int nt, int in) { int rulenum, i; short *nts; Node kids[10]; p = reuse(p, nt); rulenum = getrule(p, nt); nts = IR->x._nts[rulenum]; fprint(stderr, "dumpcover(%x) = ", p); for (i = 0; i < in; i++) fprint(stderr, " "); dumprule(rulenum); (*IR->x._kids)(p, rulenum, kids); for (i = 0; nts[i]; i++) dumpcover(kids[i], nts[i], in+1); }