static td_err_e enable_thread_event (int event, CORE_ADDR *bp) { td_notify_t notify; td_err_e err; struct thread_db_info *info; info = get_thread_db_info (GET_PID (inferior_ptid)); /* Access an lwp we know is stopped. */ info->proc_handle.ptid = inferior_ptid; /* Get the breakpoint address for thread EVENT. */ err = info->td_ta_event_addr_p (info->thread_agent, event, ¬ify); if (err != TD_OK) return err; /* Set up the breakpoint. */ gdb_assert (exec_bfd); (*bp) = (gdbarch_convert_from_func_ptr_addr (target_gdbarch, /* Do proper sign extension for the target. */ (bfd_get_sign_extend_vma (exec_bfd) > 0 ? (CORE_ADDR) (intptr_t) notify.u.bptaddr : (CORE_ADDR) (uintptr_t) notify.u.bptaddr), ¤t_target)); create_thread_event_breakpoint (target_gdbarch, *bp); return TD_OK; }
static psaddr_t core_addr_to_ps_addr (CORE_ADDR addr) { if (exec_bfd && bfd_get_sign_extend_vma (exec_bfd)) return (psaddr_t) (intptr_t) addr; else return (psaddr_t) (uintptr_t) addr; }
static CORE_ADDR ps_addr_to_core_addr (psaddr_t addr) { if (exec_bfd && bfd_get_sign_extend_vma (exec_bfd)) return (intptr_t) addr; else return (uintptr_t) addr; }