tldm-universe/Ardent/UV/gcidir/include/raid.h

133 lines
5.4 KiB
C
Raw Normal View History

2024-09-09 21:51:08 +00:00
#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 */