diff options
author | Pedro Alves <palves@redhat.com> | 2016-02-11 11:44:35 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2016-02-11 12:20:36 +0000 |
commit | 04956cf9b84b53728e20f0dae1f561ab26714453 (patch) | |
tree | dd8aaeac0a7d0bb0acbc9536295dcd064d3303ec /elfcpp/elfcpp_internal.h | |
parent | ca47aa93d4a13e676e771041eb7372ff2cdb1487 (diff) | |
download | gdb-users/palves/gdbserver-extract-unsigned-integer.zip gdb-users/palves/gdbserver-extract-unsigned-integer.tar.gz gdb-users/palves/gdbserver-extract-unsigned-integer.tar.bz2 |
Fix gdbserver's regcache_raw_read_unsigned on big endian hostsusers/palves/gdbserver-extract-unsigned-integer
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.
Diffstat (limited to 'elfcpp/elfcpp_internal.h')
0 files changed, 0 insertions, 0 deletions