diff options
author | Marcin KoĆcielnicki <koriakin@0x04.net> | 2016-03-06 16:38:52 +0100 |
---|---|---|
committer | Marcin KoĆcielnicki <koriakin@0x04.net> | 2016-03-09 18:43:54 +0100 |
commit | cc2c4da8813b980a4e68272bb43583f4af6fe89c (patch) | |
tree | d9bca39562fdf1e4c32fded351f4c73c57a1b92a /gdb/gdbcore.h | |
parent | a67914defbe57290c714975d7c1ccefa787fd635 (diff) |
gdb/rs6000: Read backchain as unsigned.
Previously, backchain was read as a signed quantity, resulting in
addresses like 0xfffffffffffeded0 instead of 0xfffeded0 returned by
unwinder on 32-bit powerpc. While normally such addresses are masked
off, this causes problems for tracepoints, since 0xfffffffffffeded0
is considered unavailable.
Fixes a test failure in gdb.trace/entry-values.exp.
gdb/ChangeLog:
* corefile.c (safe_read_memory_unsigned_integer): New function.
* gdbcore.h (safe_read_memory_unsigned_integer): New prototype.
* rs6000-tdep.c (rs6000_frame_cache): Read backchain as unsigned.
Diffstat (limited to 'gdb/gdbcore.h')
-rw-r--r-- | gdb/gdbcore.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gdb/gdbcore.h b/gdb/gdbcore.h index 5db80e56a1..8b101bcabe 100644 --- a/gdb/gdbcore.h +++ b/gdb/gdbcore.h @@ -76,6 +76,9 @@ extern int safe_read_memory_integer (CORE_ADDR memaddr, int len, extern ULONGEST read_memory_unsigned_integer (CORE_ADDR memaddr, int len, enum bfd_endian byte_order); +extern int safe_read_memory_unsigned_integer (CORE_ADDR memaddr, int len, + enum bfd_endian byte_order, + ULONGEST *return_value); /* Read an integer from debugged code memory, given address, number of bytes, and byte order for code. */ |