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:  *	@(#)breakpoint.h	5.1 (Berkeley) 6/6/85
   7:  */
   8: 
   9: /*
  10:  * Breakpoint module definitions.
  11:  *
  12:  * This module contains routines that manage breakpoints at a high level.
  13:  * This includes adding and deleting breakpoints, handling the various
  14:  * types of breakpoints when they happen, management of conditions for
  15:  * breakpoints, and display information after single stepping.
  16:  */
  17: 
  18: unsigned short tracing;
  19: unsigned short var_tracing;
  20: unsigned short inst_tracing;
  21: 
  22: BOOLEAN isstopped;
  23: 
  24: #define ss_lines        (tracing != 0)
  25: #define ss_variables        (var_tracing != 0)
  26: #define ss_instructions     (inst_tracing != 0)
  27: #define single_stepping     (ss_lines || ss_variables || ss_instructions)
  28: 
  29: /*
  30:  * types of breakpoints
  31:  */
  32: 
  33: typedef enum {
  34:     ALL_ON,         /* turn TRACE on */
  35:     ALL_OFF,        /* turn TRACE off */
  36:     INST,           /* trace instruction (source line) */
  37:     CALL, RETURN,       /* trace procedure/function */
  38:     BLOCK_ON,       /* set CALL breakpoint */
  39:     BLOCK_OFF,      /* clear CALL breakpoint */
  40:     TERM_ON,        /* turn TRACEVAR on */
  41:     TERM_OFF,       /* turn TRACEVAR off */
  42:     AT_BP,          /* print expression at a line */
  43:     STOP_BP,        /* stop execution */
  44:     CALLPROC,       /* return from a "call"-ed procedure */
  45:     END_BP,         /* return from program */
  46:     STOP_ON,        /* start looking for stop condition */
  47:     STOP_OFF,       /* stop looking for stop condition */
  48: } BPTYPE;
  49: 
  50: /*
  51:  * Things that are on the tracing or condition list are either
  52:  * associated with the trace (implying printing) or stop commands.
  53:  */
  54: 
  55: typedef enum { TRPRINT, TRSTOP } TRTYPE;
  56: 
  57: /*
  58:  * routines available from this module
  59:  */
  60: 
  61: addvar();       /* add a variable to the trace list */
  62: delvar();       /* delete a variable from the trace list */
  63: printvarnews();     /* print out variables that have changed */
  64: trfree();       /* free the entire trace list */
  65: addcond();      /* add a condition to the list */
  66: delcond();      /* delete a condition from the list */
  67: BOOLEAN trcond();   /* determine if any trace condition is true */
  68: BOOLEAN stopcond(); /* determine if any stop condition is true */
  69: 
  70: addbp();        /* add a breakpoint */
  71: delbp();        /* delete a breakpoint, return FALSE if unsuccessful */
  72: bpfree();       /* free all breakpoint information */
  73: setallbps();        /* set traps for all breakpoints */
  74: unsetallbps();      /* remove traps at all breakpoints */
  75: BOOLEAN bpact();    /* handle a breakpoint */
  76: fixbps();       /* destroy temporary breakpoints left after a fault */
  77: status();       /* list items being traced */

Defined variables

inst_tracing defined in line 20; used 1 times
  • in line 26
tracing defined in line 18; used 1 times
  • in line 24
var_tracing defined in line 19; used 1 times
  • in line 25

Defined macros

single_stepping defined in line 27; never used
ss_instructions defined in line 26; used 1 times
  • in line 27
ss_lines defined in line 24; used 1 times
  • in line 27
ss_variables defined in line 25; used 1 times
  • in line 27
Last modified: 1985-06-07
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 824
Valid CSS Valid XHTML 1.0 Strict