Annotation of 43BSDTahoe/ucb/pascal/pdx/breakpoint.h, revision 1.1

1.1     ! root        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.2 (Berkeley) 1/3/88
        !             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: int addvar();          /* add a variable to the trace list */
        !            62: int delvar();          /* delete a variable from the trace list */
        !            63: int printvarnews();    /* print out variables that have changed */
        !            64: int trfree();          /* free the entire trace list */
        !            65: int addcond();         /* add a condition to the list */
        !            66: int 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: int addbp();           /* add a breakpoint */
        !            71: int delbp();           /* delete a breakpoint, return FALSE if unsuccessful */
        !            72: int bpfree();          /* free all breakpoint information */
        !            73: int setallbps();       /* set traps for all breakpoints */
        !            74: int unsetallbps();     /* remove traps at all breakpoints */
        !            75: BOOLEAN bpact();       /* handle a breakpoint */
        !            76: int fixbps();          /* destroy temporary breakpoints left after a fault */
        !            77: int 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.