#ifndef h_raid #define h_raid /****************************************************************************** * * definitions for the symbolic debugger * * Module %M% Version %I% Date %H% * * (c) Copyright 1998 Ardent Software Inc. - All Rights Reserved * This is unpublished proprietary source code of Ardent Software Inc. * The copyright notice above does not evidence any actual or intented * publication of such source code. * ******************************************************************************* * * Maintenence log - insert most recent change descriptions at top * * Date.... GTAR# WHO Description......................................... * 10/14/98 23801 SAP Change copyrights. * 06/05/98 19540 JSM Change BASIC, RAID and VLIST to use common SRCLEN * definition for maximum source line length * 06/01/94 7096 WLG Changed hex back to RAIDhex because hex is a macro * 06/01/94 7096 WLG Added two elements to RAIDenv for watchpoint * value setting. Also removed redundant "RAID" from * elements in the RAIDenv structure for readability. * 06/17/93 8357 JWT Changed RAID to stack debug environments between * execute layers * 04/29/91 8258 JWT remove 16 deep restriction on timings function * 11/13/89 6143 JSM Added include of exesave.h * 10/02/89 5579 JSM Moved define of RAIDmaxbp here from raid.c * 07/25/88 - - Maintenence log purged at 5.2.1, see release 5.1.10. * *****************************************************************************/ #include "exesave.h" EXTERN void RAIDtrap(); EXTERN int RAIDsymbol(); #define RAIDmaxbp 64 #define RAID_MMAX 7 /* The total number of variables allowed to */ /* be watched for modification during one */ /* raid session. (M command) */ /* Note - trace structure is no longer used for 'T' option of raid */ /* This was not removed because '#' option for timings still uses */ /* this old trace logic. 11/89 */ struct RAIDtrace { int t_slot; int t_line; }; struct RAIDenvironment { int flag; int globalRAID_FLG; /* used only for stacking */ int mode; int dom; int dom2; int failed; int tracecnt; /* keeps track of trace history */ int proc_cnt;/* how many procedure names to break on*/ int proc_flag;/*Flags a break on a procedure name */ int bskip;/* global counter of how many times to skip */ int brks; int watch_slot;/*used to save slot number for watchpoints */ int depth; /* add 1 per symbol table */ int lineno; /* the current source line */ int newline; /* the next source line to be executed */ int dspline; /* the current line displayed */ int curline; /* the current line */ int calline; /* will retain the source line number from */ /* where a subrountine is called from */ int Max_depth; int mcnt;/*how many watchpoint variables */ int total;/* the total number of watchpoints variables */ int slot;/* keeps track of what subroutine presently in */ int last_slot; /* number of subroutines called */ int src_open; int inx[RAID_MMAX];/*save symbols position in symbol table */ int ofst[RAID_MMAX];/*hold the offset from which a value o*/ /* an array can be calculated */ int RAIDx[RAID_MMAX];/* x a an nd y coordinates for watg */ int RAIDy[RAID_MMAX]; short RAIDhex, nok; PROGRAM **saveprog; ushort **saveCode; char *srcname; struct RAIDtrace *ts; ushort *bpnts[RAIDmaxbp+1]; PROGRAM *bpenv[RAIDmaxbp+1]; char *proc_name[RAIDmaxbp+1]; ushort *Code[RAIDmaxbp+1]; ushort *wspc; /* saves address of watchpoint */ DATUM *wsvn[RAID_MMAX]; /* saves addresses of watchpoints */ DATUM svMAT[RAID_MMAX]; /* saves value of array for watchpoints*/ int watch_flag[RAID_MMAX]; /* Indicate watch on value if TRUE */ DATUM wvalue[RAID_MMAX]; /* saves value to watch for */ ushort bopcd[RAIDmaxbp+1]; STRING searchstr; /* last searched-for substring */ DATUM svDAT[RAID_MMAX]; /* saves current value of watchpoint */ MFILE fsrc; char srcbuff[ SRCLEN ]; struct RAIDenvironment *prevRAIDenv; }; EXTERN struct RAIDenvironment *RAIDenv; #define MX_PATHNAME 1024 #define RAIDinit 0x0001 /* have we initialized */ #define RAIDstep 0x0002 /* we are single stepping */ #define RAIDcall 0x0004 /* calling external subroutine */ #define RAIDcrst 0x0008 /* restart after single step ... continue */ /* It's the automatic restart flag */ #define RAIDcskp 0x0010 /* counter for how many times to continue */ #define RAIDwstp 0x0020 /* step till variable changes */ #define RAIDsent 0x0040 /* trap on subroutine call */ #define RAIDlstp 0x0080 /* step till source line changes */ #define RAIDastp 0x0100 /* assembly language step */ #define RAIDSstp 0x0200 /* step over subroutine calls */ #define RAIDpcal 0x0400 /* break on procedure call names */ #define RAIDsrtn 0x0800 /* return from external subroutine */ #define RAIDnsee 0x1000 /* in -I subroutine */ #define RAIDverb 0x0001 /* verbose mode */ #define RAIDprof 0x0080 /* profiling mode (opcode counting) */ #define RAIDtime 0x0002 /* timing all the subroutines */ #define DAYsecs 14400 /* seconds in a day */ #endif /* end of raid.h */