X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fgdbserver%2Fproc-service.c;h=5a6dc4e25fcadbdec054b9c265d83daadd23fe4b;hb=d86d4aafd4fa22fa4cccb83253fb187b03f97f48;hp=40a7c09d78e2d0b3d286eb4e3b19a2b01ce467a3;hpb=54a0b537b8b8ebf14fe9cb3fc82e1ae090d5d6bb;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/gdbserver/proc-service.c b/gdb/gdbserver/proc-service.c index 40a7c09d78..5a6dc4e25f 100644 --- a/gdb/gdbserver/proc-service.c +++ b/gdb/gdbserver/proc-service.c @@ -1,6 +1,5 @@ /* libthread_db helper functions for the remote server for GDB. - Copyright (C) 2002, 2004, 2005, 2006, 2007, 2008, 2009 - Free Software Foundation, Inc. + Copyright (C) 2002-2014 Free Software Foundation, Inc. Contributed by MontaVista Software. @@ -40,18 +39,20 @@ typedef size_t gdb_ps_size_t; #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 @@ -65,7 +66,7 @@ ps_pglobal_lookup (gdb_ps_prochandle_t ph, const char *obj, { 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; @@ -101,18 +102,17 @@ ps_lgetregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, prgregset_t gregset) #ifdef HAVE_REGSETS struct lwp_info *lwp; struct thread_info *reg_inferior, *save_inferior; + struct regcache *regcache; - lwp = (struct lwp_info *) find_inferior_id (&all_lwps, - lwpid); + lwp = find_lwp_pid (pid_to_ptid (lwpid)); if (lwp == NULL) return PS_ERR; 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; @@ -157,7 +157,5 @@ ps_lsetfpregs (gdb_ps_prochandle_t ph, lwpid_t lwpid, void *fpregset) pid_t ps_getpid (gdb_ps_prochandle_t ph) { - return ph->pid; + return pid_of (current_inferior); } - -