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

unix.superglobalmegacorp.com

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