Annotation of 42BSD/ucb/pascal/pdx/breakpoint.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.