summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Blandy <jimb@codesourcery.com>2003-05-29 19:05:50 +0000
committerJim Blandy <jimb@codesourcery.com>2003-05-29 19:05:50 +0000
commit13efbbad31cfab6e3edf7ff341b103acd42c6752 (patch)
tree2d9c5af858c0def87e63455e1612a13897cd668a
parent33e390bbafc4a0e1bd6f24b816d09ac04dd7ffda (diff)
downloadgdb-13efbbad31cfab6e3edf7ff341b103acd42c6752.tar.gz
* linux-low.c (usr_store_inferior_registers): Transfer buf in
PTRACE_XFER_TYPE-sized chunks, not int-sized chunks. Otherwise, if 'int' is smaller than PTRACE_XFER_TYPE, you end up throwing away part of the register's value.
-rw-r--r--gdb/gdbserver/ChangeLog5
-rw-r--r--gdb/gdbserver/linux-low.c4
2 files changed, 7 insertions, 2 deletions
diff --git a/gdb/gdbserver/ChangeLog b/gdb/gdbserver/ChangeLog
index 3dfb16ca85d..28605d14933 100644
--- a/gdb/gdbserver/ChangeLog
+++ b/gdb/gdbserver/ChangeLog
@@ -1,5 +1,10 @@
2003-05-29 Jim Blandy <jimb@redhat.com>
+ * linux-low.c (usr_store_inferior_registers): Transfer buf in
+ PTRACE_XFER_TYPE-sized chunks, not int-sized chunks. Otherwise,
+ if 'int' is smaller than PTRACE_XFER_TYPE, you end up throwing
+ away part of the register's value.
+
Add support for Linux on the 64-bit PowerPC.
* linux-ppc64-low.c: New file.
* configure.srv (powerpc64-*-linux*): New case.
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c
index 95bf9697739..aad2ecdafa5 100644
--- a/gdb/gdbserver/linux-low.c
+++ b/gdb/gdbserver/linux-low.c
@@ -976,7 +976,7 @@ usr_store_inferior_registers (int regno)
{
errno = 0;
ptrace (PTRACE_POKEUSER, inferior_pid, (PTRACE_ARG3_TYPE) regaddr,
- *(int *) (buf + i));
+ *(PTRACE_XFER_TYPE *) (buf + i));
if (errno != 0)
{
if ((*the_low_target.cannot_store_register) (regno) == 0)
@@ -989,7 +989,7 @@ usr_store_inferior_registers (int regno)
return;
}
}
- regaddr += sizeof (int);
+ regaddr += sizeof (PTRACE_XFER_TYPE);
}
}
else