|
|
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 */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.