Annotation of 42BSD/ucb/pascal/pdx/breakpoint.h, revision 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.