diff options
| author | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
|---|---|---|
| committer | Xavier ASUS <xavi92psx@gmail.com> | 2019-10-18 00:31:54 +0200 |
| commit | 268a53de823a6750d6256ee1fb1e7707b4b45740 (patch) | |
| tree | 42c1799a9a82b2f7d9790ee9fe181d72a7274751 /debugger/mcs51/break.h | |
| download | sdcc-gas-268a53de823a6750d6256ee1fb1e7707b4b45740.tar.gz | |
sdcc-3.9.0 fork implementing GNU assembler syntax
This fork aims to provide better support for stm8-binutils
Diffstat (limited to 'debugger/mcs51/break.h')
| -rw-r--r-- | debugger/mcs51/break.h | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/debugger/mcs51/break.h b/debugger/mcs51/break.h new file mode 100644 index 0000000..062cb22 --- /dev/null +++ b/debugger/mcs51/break.h @@ -0,0 +1,98 @@ +/*------------------------------------------------------------------------- + break.h - Header file for break point management + Written By - Sandeep Dutta . sandeep.dutta@usa.net (1999) + + This program is free software; you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by the + Free Software Foundation; either version 2, or (at your option) any + later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + In other words, you are welcome to use, share and improve this program. + You are forbidden to forbid anyone else to use, share and improve + what you give them. Help stamp out software-hoarding! +-------------------------------------------------------------------------*/ + +#ifndef SDCDB_BREAK_H +#define SDCDB_BREAK_H + +#include "simi.h" + +/* break point type */ +enum { + DATA = 1, + CODE , + A_CODE , + USER , + STEP , + NEXT , + FENTRY , + FEXIT, + TMPUSER }; + +typedef struct breakp +{ + unsigned addr; /* address of break point */ + int bpnum ; /* break point number */ + char addrType; /* data or code */ + char bpType ; /* bp type USER/ LOGICAL */ + char *filename; /* file name */ + int lineno ; /* lineno */ + int (*callBack) + (unsigned,struct breakp *,context *);/* address of call back + * function */ + char *commands; + int ignoreCnt; + int hitCnt; + char *condition; +} breakp; + + +#define BP_CALLBACK(func) \ + int func (unsigned addr, \ + breakp *bp, \ + context *ctxt) + +#define EXTERN_BP_CALLBACK(func) \ + extern int func (unsigned addr, \ + breakp *bp, \ + context *ctxt) + +extern char userBpPresent; +extern char doingSteps; +extern hTab *bptable; + + + +int setBreakPoint (unsigned , char , char, + int (*callBack)(unsigned,breakp *bp,context *),char *, int); + +long getLastBreakptNumber(void); +void resetHitCount(void); +void setUserbpCommand (int , char *); +void setUserbpCondition (int , char *); +void setUserbpIgnCount (int , int ); + +void clearUSERbp ( unsigned int ); +void deleteSTEPbp(); +void deleteNEXTbp(); +void deleteUSERbp(int); +int dispatchCB (unsigned, context *); +void listUSERbp (); + +/* call back functions */ +EXTERN_BP_CALLBACK(fexitCB); +EXTERN_BP_CALLBACK(fentryCB); +EXTERN_BP_CALLBACK(userBpCB); +EXTERN_BP_CALLBACK(stepBpCB); +EXTERN_BP_CALLBACK(nextBpCB); + +#endif |
