1: /*
   2:  * Copyright (c) 1980 Regents of the University of California.
   3:  * All rights reserved.  The Berkeley software License Agreement
   4:  * specifies the terms and conditions for redistribution.
   5:  */
   6: 
   7: #ifndef lint
   8: static char sccsid[] = "@(#)fixbps.c	5.1 (Berkeley) 6/5/85";
   9: #endif not lint
  10: /*
  11:  * fix up breakpoint information before continuing execution
  12:  *
  13:  * It's necessary to destroy breakpoints that were created temporarily
  14:  * and still exist because the program terminated abnormally.
  15:  */
  16: 
  17: #include "defs.h"
  18: #include "breakpoint.h"
  19: #include "bp.rep"
  20: 
  21: fixbps()
  22: {
  23:     register BPINFO *p, *last, *next;
  24: 
  25:     last = NIL;
  26:     p = bphead;
  27:     while (p != NIL) {
  28:         next = p->bpnext;
  29:         switch(p->bptype) {
  30:             case ALL_OFF:
  31:                 if (p->bpline >= 0) {
  32:                     --tracing;
  33:                 } else {
  34:                     --inst_tracing;
  35:                 }
  36:                 if (p->bpcond != NIL) {
  37:                     delcond(TRPRINT, p->bpcond);
  38:                 }
  39:                 goto delete;
  40: 
  41:             case STOP_OFF:
  42:                 var_tracing--;
  43:                 delcond(TRSTOP, p->bpcond);
  44:                 goto delete;
  45: 
  46:             case TERM_OFF:
  47:                 --var_tracing;
  48:                 delvar(TRPRINT, p->bpnode, p->bpcond);
  49:                 goto delete;
  50: 
  51:             case CALL:
  52:             case RETURN:
  53:             case BLOCK_OFF:
  54:             case CALLPROC:
  55:             case END_BP:
  56: 
  57:             delete:
  58:                 if (last == NIL) {
  59:                     bphead = next;
  60:                 } else {
  61:                     last->bpnext = next;
  62:                 }
  63:                 dispose(p);
  64:                 break;
  65: 
  66:             default:
  67:                 last = p;
  68:                 break;
  69:         }
  70:         p = next;
  71:     }
  72:     tracing = 0;
  73:     var_tracing = 0;
  74:     inst_tracing = 0;
  75:     trfree();
  76:     condfree();
  77: }

Defined functions

fixbps defined in line 21; used 1 times

Defined variables

sccsid defined in line 8; never used
Last modified: 1985-06-06
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 2024
Valid CSS Valid XHTML 1.0 Strict