/* libthread_db helper functions for the remote server for GDB.
- Copyright (C) 2002, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+ Copyright (C) 2002-2014 Free Software Foundation, Inc.
Contributed by MontaVista Software.
#ifdef HAVE_REGSETS
static struct regset_info *
-gregset_info(void)
+gregset_info (void)
{
int i = 0;
+ const struct regs_info *regs_info = (*the_low_target.regs_info) ();
+ struct regsets_info *regsets_info = regs_info->regsets_info;
- while (target_regsets[i].size != -1)
+ while (regsets_info->regsets[i].size != -1)
{
- if (target_regsets[i].type == GENERAL_REGS)
+ if (regsets_info->regsets[i].type == GENERAL_REGS)
break;
i++;
}
- return &target_regsets[i];
+ return ®sets_info->regsets[i];
}
#endif
{
CORE_ADDR addr;
- if (look_up_one_symbol (name, &addr) == 0)
+ if (thread_db_look_up_one_symbol (name, &addr) == 0)
return PS_NOSYM;
*sym_addr = (psaddr_t) (unsigned long) addr;
ps_lgetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, prgregset_t gregset)
{
#ifdef HAVE_REGSETS
- struct process_info *process;
+ struct lwp_info *lwp;
struct thread_info *reg_inferior, *save_inferior;
+ struct regcache *regcache;
- process = (struct process_info *) find_inferior_id (&all_processes,
- lwpid);
- if (process == NULL)
+ lwp = find_lwp_pid (pid_to_ptid (lwpid));
+ if (lwp == NULL)
return PS_ERR;
- reg_inferior = get_process_thread (process);
+ reg_inferior = get_lwp_thread (lwp);
save_inferior = current_inferior;
current_inferior = reg_inferior;
-
- the_target->fetch_registers (0);
- gregset_info()->fill_function (gregset);
+ regcache = get_thread_regcache (current_inferior, 1);
+ gregset_info ()->fill_function (regcache, gregset);
current_inferior = save_inferior;
return PS_OK;
pid_t
ps_getpid (gdb_ps_prochandle_t ph)
{
- return ph->pid;
+ return pid_of (current_inferior);
}
-
-