|
|
1.1 ! root 1: /* Copyright (c) 1982 Regents of the University of California */ ! 2: ! 3: static char sccsid[] = "@(#)fixbps.c 1.1 1/18/82"; ! 4: ! 5: /* ! 6: * fix up breakpoint information before continuing execution ! 7: * ! 8: * It's necessary to destroy breakpoints that were created temporarily ! 9: * and still exist because the program terminated abnormally. ! 10: */ ! 11: ! 12: #include "defs.h" ! 13: #include "breakpoint.h" ! 14: #include "bp.rep" ! 15: ! 16: fixbps() ! 17: { ! 18: register BPINFO *p, *last, *next; ! 19: ! 20: last = NIL; ! 21: p = bphead; ! 22: while (p != NIL) { ! 23: next = p->bpnext; ! 24: switch(p->bptype) { ! 25: case ALL_OFF: ! 26: if (p->bpline >= 0) { ! 27: --tracing; ! 28: } else { ! 29: --inst_tracing; ! 30: } ! 31: if (p->bpcond != NIL) { ! 32: delcond(TRPRINT, p->bpcond); ! 33: } ! 34: goto delete; ! 35: ! 36: case STOP_OFF: ! 37: var_tracing--; ! 38: delcond(TRSTOP, p->bpcond); ! 39: goto delete; ! 40: ! 41: case TERM_OFF: ! 42: --var_tracing; ! 43: delvar(TRPRINT, p->bpnode, p->bpcond); ! 44: goto delete; ! 45: ! 46: case CALL: ! 47: case RETURN: ! 48: case BLOCK_OFF: ! 49: case CALLPROC: ! 50: case END_BP: ! 51: ! 52: delete: ! 53: if (last == NIL) { ! 54: bphead = next; ! 55: } else { ! 56: last->bpnext = next; ! 57: } ! 58: dispose(p); ! 59: break; ! 60: ! 61: default: ! 62: last = p; ! 63: break; ! 64: } ! 65: p = next; ! 66: } ! 67: tracing = 0; ! 68: var_tracing = 0; ! 69: inst_tracing = 0; ! 70: trfree(); ! 71: condfree(); ! 72: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.