diff options
author | Daniel Jacobowitz <drow@false.org> | 2005-07-13 15:21:02 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2005-07-13 15:21:02 +0000 |
commit | e9d25b9800c6f642ae0fe10a0fa57d079d84ff6e (patch) | |
tree | eff685623f742c5dda706a2ca61b4ebb08a44130 /gdb/gdbserver/linux-low.c | |
parent | a06660f79997c37a351afbce6ce75bd0c3de1276 (diff) | |
download | gdb-e9d25b9800c6f642ae0fe10a0fa57d079d84ff6e.zip gdb-e9d25b9800c6f642ae0fe10a0fa57d079d84ff6e.tar.gz gdb-e9d25b9800c6f642ae0fe10a0fa57d079d84ff6e.tar.bz2 |
* configure.ac: Define HAVE_LINUX_REGSETS even if PTRACE_GETREGS
is not available. Define HAVE_PTRACE_GETREGS if it is.
* config.in, configure: Regenerated.
* configure.srv: Set srv_linux_regsets for PowerPC and PowerPC64.
* linux-i386-low.c, linux-m68k-low.c: Update to use
HAVE_PTRACE_GETREGS.
* linux-low.c (regsets_fetch_inferior_registers)
(regsets_store_inferior_registers): Only return 0 if we processed
GENERAL_REGS.
* linux-ppc-low.c (ppc_fill_gregset, target_regsets): New.
* linux-ppc64-low.c (ppc_fill_gregset, target_regsets): New.
Diffstat (limited to 'gdb/gdbserver/linux-low.c')
-rw-r--r-- | gdb/gdbserver/linux-low.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index aefec5e..70fab4f 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -1213,6 +1213,7 @@ static int regsets_fetch_inferior_registers () { struct regset_info *regset; + int saw_general_regs = 0; regset = target_regsets; @@ -1254,16 +1255,22 @@ regsets_fetch_inferior_registers () perror (s); } } + else if (regset->type == GENERAL_REGS) + saw_general_regs = 1; regset->store_function (buf); regset ++; } - return 0; + if (saw_general_regs) + return 0; + else + return 1; } static int regsets_store_inferior_registers () { struct regset_info *regset; + int saw_general_regs = 0; regset = target_regsets; @@ -1303,9 +1310,15 @@ regsets_store_inferior_registers () perror ("Warning: ptrace(regsets_store_inferior_registers)"); } } + else if (regset->type == GENERAL_REGS) + saw_general_regs = 1; regset ++; free (buf); } + if (saw_general_regs) + return 0; + else + return 1; return 0; } |