]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
Fix gdbserver's regcache_raw_read_unsigned on big endian hosts users/palves/gdbserver-extract-unsigned-integer
authorPedro Alves <palves@redhat.com>
Thu, 11 Feb 2016 11:44:35 +0000 (11:44 +0000)
committerPedro Alves <palves@redhat.com>
Thu, 11 Feb 2016 12:20:36 +0000 (12:20 +0000)
commit04956cf9b84b53728e20f0dae1f561ab26714453
treedd8aaeac0a7d0bb0acbc9536295dcd064d3303ec
parentca47aa93d4a13e676e771041eb7372ff2cdb1487
Fix gdbserver's regcache_raw_read_unsigned on big endian hosts

The regcache_raw_read_unsigned function is memcpy'ing a 32-bit value
directly into a 64-bit variable, which doesn't work on big endian
targets.

Fix this by memcpy'ing to a buffer, and then using
extract_unsigned_integer, just like gdb's version.

gdb/gdbserver/ChangeLog:
2016-02-11  Pedro Alves  <palves@redhat.com>

* Makefile.in (SFILES): Add $(srcdir)/common/gdb-byteswap.c.
(gdb-byteswap.o): New rule.
* regcache.c: Include "gdb-byteswap.h".
(host_bfd_endian): New function.
(regcache_raw_read_unsigned): Use extract_unsigned_integer and
host_bfd_endian.
gdb/gdbserver/Makefile.in
gdb/gdbserver/regcache.c