|
|
1.1.1.2 ! root 1: /* 1.1 root 2: * Mach Operating System 3: * Copyright (c) 1991,1990 Carnegie Mellon University 4: * All Rights Reserved. 1.1.1.2 ! root 5: * 1.1 root 6: * Permission to use, copy, modify and distribute this software and its 7: * documentation is hereby granted, provided that both the copyright 8: * notice and this permission notice appear in all copies of the 9: * software, derivative works or modified versions, and any portions 10: * thereof, and that both notices appear in supporting documentation. 1.1.1.2 ! root 11: * 1.1 root 12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" 13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR 14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. 1.1.1.2 ! root 15: * 1.1 root 16: * Carnegie Mellon requests users of this software to return to 1.1.1.2 ! root 17: * 1.1 root 18: * Software Distribution Coordinator or [email protected] 19: * School of Computer Science 20: * Carnegie Mellon University 21: * Pittsburgh PA 15213-3890 1.1.1.2 ! root 22: * 1.1 root 23: * any improvements or extensions that they make and grant Carnegie Mellon 24: * the rights to redistribute these changes. 25: */ 26: /* 27: * Author: David B. Golub, Carnegie Mellon University 28: * Date: 7/90 29: */ 30: #ifndef _DDB_DB_BREAK_H_ 31: #define _DDB_DB_BREAK_H_ 32: 33: #include <machine/db_machdep.h> 34: #include <kern/thread.h> 35: #include <kern/task.h> 36: #include <mach/boolean.h> 37: 38: /* 39: * thread list at the same breakpoint address 40: */ 41: struct db_thread_breakpoint { 42: vm_offset_t tb_task_thd; /* target task or thread */ 43: boolean_t tb_is_task; /* task qualified */ 44: short tb_number; /* breakpoint number */ 45: short tb_init_count; /* skip count(initial value) */ 46: short tb_count; /* current skip count */ 47: short tb_cond; /* break condition */ 48: struct db_thread_breakpoint *tb_next; /* next chain */ 49: }; 50: 51: typedef struct db_thread_breakpoint *db_thread_breakpoint_t; 52: 53: /* 54: * Breakpoint. 55: */ 56: 57: struct db_breakpoint { 58: task_t task; /* target task */ 59: db_addr_t address; /* set here */ 60: db_thread_breakpoint_t threads; /* thread */ 61: int flags; /* flags: */ 62: #define BKPT_SINGLE_STEP 0x2 /* to simulate single step */ 63: #define BKPT_TEMP 0x4 /* temporary */ 64: #define BKPT_USR_GLOBAL 0x8 /* global user space break point */ 65: #define BKPT_SET_IN_MEM 0x10 /* break point is set in memory */ 66: #define BKPT_1ST_SET 0x20 /* 1st time set of user global bkpt */ 67: vm_size_t bkpt_inst; /* saved instruction at bkpt */ 68: struct db_breakpoint *link; /* link in in-use or free chain */ 69: }; 70: 71: typedef struct db_breakpoint *db_breakpoint_t; 72: 73: extern db_breakpoint_t db_find_breakpoint( task_t task, db_addr_t addr); 74: extern boolean_t db_find_breakpoint_here( task_t task, db_addr_t addr); 75: extern void db_set_breakpoints(); 76: extern void db_clear_breakpoints(); 77: extern db_thread_breakpoint_t db_find_thread_breakpoint_here 78: ( task_t task, db_addr_t addr ); 79: extern db_thread_breakpoint_t db_find_breakpoint_number 80: ( int num, db_breakpoint_t *bkptp); 81: 82: extern db_breakpoint_t db_set_temp_breakpoint( task_t task, db_addr_t addr); 83: extern void db_delete_temp_breakpoint 84: ( task_t task, db_breakpoint_t bkpt); 85: 1.1.1.2 ! root 86: #endif /* _DDB_DB_BREAK_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.