db_addr_t
static db_addr_t
db_disasm_esc(db_addr_t loc, int inst, int rex, bool short_addr,
static db_addr_t
db_read_address(db_addr_t loc, bool short_addr, int rex, int regmodrm,
static db_addr_t
db_read_address(db_addr_t loc, bool short_addr, int rex, int regmodrm,
db_printsym((db_addr_t)addrp->disp, DB_STGY_ANY);
static db_addr_t
db_disasm_esc(db_addr_t loc, int inst, int rex, bool short_addr, int size,
db_addr_t
db_disasm(db_addr_t loc, bool altfmt)
db_printsym((db_addr_t)displ, DB_STGY_ANY);
db_printsym((db_addr_t)displ, DB_STGY_XTRN);
db_printsym((db_addr_t)displ, DB_STGY_XTRN);
db_print_stack_entry(const char *name, db_addr_t callpc, db_addr_t frame)
db_nextframe(db_addr_t *fp, db_addr_t *ip, struct thread *td)
db_addr_t tf_addr;
db_backtrace(struct thread *td, struct trapframe *tf, db_addr_t frame,
db_addr_t pc, register_t sp, int count)
db_addr_t actframe;
db_addr_t callpc, frame;
#define PC_REGS() ((db_addr_t)kdb_thrctx->pcb_rip)
db_printsym((db_addr_t)address, DB_STGY_ANY);
branch_taken(u_int insn, db_addr_t pc)
kdb_cpu_pc_is_singlestep(db_addr_t pc)
db_addr_t pc, brpc;
db_printsym((db_addr_t)addr, DB_STGY_ANY);
db_addr_t address;
#define PC_REGS() ((db_addr_t)kdb_thrctx->pcb_regs.sf_pc)
u_int branch_taken (u_int insn, db_addr_t pc);
boolean_t kdb_cpu_pc_is_singlestep(db_addr_t);
db_printsym((db_addr_t)address, DB_STGY_ANY);
db_printsym((db_addr_t)addr, DB_STGY_ANY);
db_printsym((db_addr_t)addr, DB_STGY_ANY);
#define PC_REGS() ((db_addr_t)kdb_thrctx->pcb_x[PCB_LR])
db_get_value(db_addr_t addr, int size, bool is_signed)
db_put_value(db_addr_t addr, int size, db_expr_t value)
db_expr_t db_get_value(db_addr_t addr, int size, bool is_signed);
void db_put_value(db_addr_t addr, int size, db_expr_t value);
db_addr_t addr, int count)
db_addr_t addr)
db_addr_t addr)
db_find_breakpoint_here(db_addr_t addr)
(db_addr_t)addr);
db_set_breakpoint(&db_breakpoint, db_map_addr(addr), (db_addr_t)addr,
(db_addr_t)addr);
(db_addr_t)addr, count))
(db_addr_t)addr);
vm_map_t map, db_addr_t addr);
vm_map_t map, db_addr_t addr);
vm_map_t map, db_addr_t addr, int count);
db_addr_t address; /* set here */
db_breakpoint_t db_find_breakpoint_here(db_addr_t addr);
db_dot = (db_addr_t) addr;
db_addr_t db_dot;
db_addr_t db_last_addr;
db_addr_t db_prev;
db_addr_t db_next;
extern db_addr_t db_dot; /* current location */
extern db_addr_t db_last_addr; /* last explicit address typed */
extern db_addr_t db_prev; /* last address examined
extern db_addr_t db_next; /* next address to be examined
db_printsym((db_addr_t)addr, DB_STGY_ANY);
db_print_loc_and_inst(db_addr_t loc)
db_addr_t addr;
db_search(db_addr_t addr, int size, db_expr_t value, db_expr_t mask,
static void db_examine(db_addr_t, char *, int);
static void db_search(db_addr_t, int, db_expr_t, db_expr_t, u_int);
db_examine((db_addr_t) addr, db_examine_format, count);
db_examine(db_addr_t addr, char *fmt, int count)
*valuep = db_get_value((db_addr_t)*valuep, sizeof(void *),
lhs = (db_addr_t)lhs >> rhs;
X_db_search_symbol(db_symtab_t *symtab, db_addr_t off, db_strategy_t strat,
db_addr_t stoffs = off;
mp = (struct ctf_member_v3 *)((db_addr_t)type +
mp = (struct ctf_lmember_v3 *)((db_addr_t)type +
db_pprint_arr(db_addr_t addr, struct ctf_type_v3 *type, u_int depth)
db_addr_t elem_addr, end;
arr = (struct ctf_array_v3 *)((db_addr_t)type + type_struct_size);
db_pprint_enum(db_addr_t addr, struct ctf_type_v3 *type, u_int depth)
ep = (struct ctf_enum *)((db_addr_t)type + type_struct_size);
db_pprint_ptr(db_addr_t addr, struct ctf_type_v3 *type, u_int depth)
db_addr_t val;
val = (addr != 0) ? db_get_value(addr, sizeof(db_addr_t), false) : 0;
db_pprint_type(db_addr_t addr, struct ctf_type_v3 *type, u_int depth)
db_addr_t addr;
static void db_pprint_type(db_addr_t addr, struct ctf_type_v3 *type,
db_pprint_int(db_addr_t addr, struct ctf_type_v3 *type, u_int depth)
db_pprint_struct(db_addr_t addr, struct ctf_type_v3 *type, u_int depth)
db_addr_t maddr;
db_find_xtrn_sym_and_offset((db_addr_t)value, &name, &offset);
db_addr_t pc = PC_REGS();
db_addr_t pc;
db_search_symbol(db_addr_t val, db_strategy_t strategy, db_expr_t *offp)
if (name == NULL || d >= (db_addr_t)db_maxoff) {
c_db_sym_t X_db_search_symbol(db_symtab_t *symtab, db_addr_t off,
c_db_sym_t db_search_symbol(db_addr_t, db_strategy_t, db_expr_t *);
db_delete_watchpoint(vm_map_t map, db_addr_t addr)
db_find_watchpoint(vm_map_t map, db_addr_t addr, db_regs_t regs)
static void db_delete_watchpoint(vm_map_t map, db_addr_t addr);
static bool db_find_watchpoint(vm_map_t map, db_addr_t addr,
static void db_set_watchpoint(vm_map_t map, db_addr_t addr,
db_set_watchpoint(vm_map_t map, db_addr_t addr, vm_size_t size)
db_addr_t loaddr; /* from this address */
db_addr_t hiaddr; /* to this address */
db_addr_t addr;
addr = (db_addr_t) address;
db_addr_t db_disasm(db_addr_t loc, bool altfmt);
void db_print_loc_and_inst(db_addr_t loc);
db_addr_t addr;
if (!db_expression((db_addr_t *)&addr)) {
db_printsym((db_addr_t)addrp->disp, DB_STGY_ANY);
static db_addr_t
db_disasm_esc(db_addr_t loc, int inst, bool short_addr, int size,
db_addr_t
db_disasm(db_addr_t loc, bool altfmt)
db_printsym((db_addr_t)displ, DB_STGY_ANY);
db_printsym((db_addr_t)displ, DB_STGY_XTRN);
db_printsym((db_addr_t)displ, DB_STGY_XTRN);
static db_addr_t
db_disasm_esc(db_addr_t loc, int inst, bool short_addr,
static db_addr_t
db_read_address(db_addr_t loc, bool short_addr, int regmodrm,
static db_addr_t
db_read_address(db_addr_t loc, bool short_addr, int regmodrm,
static void db_nextframe(struct i386_frame **, db_addr_t *, struct thread *);
static void db_print_stack_entry(const char *, int, char **, int *, db_addr_t,
db_addr_t callpc, void *frame)
db_nextframe(struct i386_frame **fp, db_addr_t *ip, struct thread *td)
*ip = (db_addr_t) eip;
*ip = (db_addr_t) eip;
*ip = (db_addr_t) eip;
db_addr_t pc, register_t sp, int count)
pc = (db_addr_t)
db_addr_t callpc;
callpc = (db_addr_t)db_get_value((int)&frame->f_retaddr, 4, false);
#define PC_REGS() ((db_addr_t)(kdb_frame->tf_eflags & PSL_VM ? \
db_printsym((db_addr_t) addr, DB_STGY_ANY); \
db_printsym((db_addr_t)tsw, DB_STGY_ANY);
db_printsym((db_addr_t)th, DB_STGY_ANY);
db_printsym((db_addr_t) addr, DB_STGY_ANY); \
#define PC_REGS(regs) ((db_addr_t)kdb_thrctx->pcb_lr)
db_addr_t
db_disasm(db_addr_t loc, bool extended)
db_backtrace(struct thread *td, db_addr_t fp, int count)
db_addr_t stackframe, lr, *args;
stackframe = *(db_addr_t *)stackframe;
args = (db_addr_t *)(stackframe + 48);
args = (db_addr_t *)(stackframe + 8);
lr = *(db_addr_t *)(stackframe + 16) - 4;
lr = *(db_addr_t *)(stackframe + 4) - 4;
if ((lr + CALLOFFSET == (db_addr_t) &trapexit) ||
(lr + CALLOFFSET == (db_addr_t) &asttrapexit)) {
lr = (db_addr_t) tf->srr0;
stackframe = (db_addr_t) tf->fixreg[1];
db_addr_t addr;
addr = (db_addr_t)__builtin_frame_address(0);
db_backtrace(curthread, *(db_addr_t *)addr, -1);
return (db_backtrace(td, (db_addr_t)ctx->pcb_sp, count));
#define PC_REGS() ((db_addr_t)kdb_frame->tf_sepc)
db_printsym((db_addr_t)DBREG_DRX(&d, i), DB_STGY_ANY);