--- Gnu-Mach/ddb/db_break.h 2020/09/02 04:36:57 1.1 +++ Gnu-Mach/ddb/db_break.h 2020/09/02 04:48:18 1.1.1.4 @@ -1,25 +1,25 @@ -/* +/* * Mach Operating System * Copyright (c) 1991,1990 Carnegie Mellon University * All Rights Reserved. - * + * * Permission to use, copy, modify and distribute this software and its * documentation is hereby granted, provided that both the copyright * notice and this permission notice appear in all copies of the * software, derivative works or modified versions, and any portions * thereof, and that both notices appear in supporting documentation. - * + * * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * + * * Carnegie Mellon requests users of this software to return to - * + * * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU * School of Computer Science * Carnegie Mellon University * Pittsburgh PA 15213-3890 - * + * * any improvements or extensions that they make and grant Carnegie Mellon * the rights to redistribute these changes. */ @@ -64,18 +64,19 @@ struct db_breakpoint { #define BKPT_USR_GLOBAL 0x8 /* global user space break point */ #define BKPT_SET_IN_MEM 0x10 /* break point is set in memory */ #define BKPT_1ST_SET 0x20 /* 1st time set of user global bkpt */ +#define BKPT_EXTERNAL 0x40 /* break point is not from ddb */ vm_size_t bkpt_inst; /* saved instruction at bkpt */ struct db_breakpoint *link; /* link in in-use or free chain */ }; typedef struct db_breakpoint *db_breakpoint_t; -extern db_breakpoint_t db_find_breakpoint( task_t task, db_addr_t addr); -extern boolean_t db_find_breakpoint_here( task_t task, db_addr_t addr); -extern void db_set_breakpoints(); -extern void db_clear_breakpoints(); +extern db_breakpoint_t db_find_breakpoint( const task_t task, db_addr_t addr) __attribute__ ((pure)); +extern boolean_t db_find_breakpoint_here( const task_t task, db_addr_t addr); +extern void db_set_breakpoints(void); +extern void db_clear_breakpoints(void); extern db_thread_breakpoint_t db_find_thread_breakpoint_here - ( task_t task, db_addr_t addr ); + ( const task_t task, db_addr_t addr ); extern db_thread_breakpoint_t db_find_breakpoint_number ( int num, db_breakpoint_t *bkptp); @@ -83,4 +84,20 @@ extern db_breakpoint_t db_set_temp_break extern void db_delete_temp_breakpoint ( task_t task, db_breakpoint_t bkpt); -#endif _DDB_DB_BREAK_H_ +extern db_breakpoint_t db_set_breakpoint(const task_t task, db_addr_t addr, + int count, const thread_t thread, + boolean_t task_bpt); + +void db_listbreak_cmd(void); + +void db_delete_cmd(void); + +void db_breakpoint_cmd( + db_expr_t addr, + int have_addr, + db_expr_t count, + const char * modif); + +extern void db_check_breakpoint_valid(void); + +#endif /* _DDB_DB_BREAK_H_ */