/* libthread_db helper functions for the remote server for GDB.
- Copyright (C) 2002, 2004, 2005, 2006, 2007, 2008, 2009
+ Copyright (C) 2002, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
Contributed by MontaVista Software.
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 (get_thread_lwp (current_inferior));
}
-
-