diff options
author | Mark Kettenis <kettenis@gnu.org> | 2014-02-27 13:40:15 +0100 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2014-02-27 13:40:15 +0100 |
commit | 27a48a9223d0c7558f0bfde2d704d4a660f5d4ea (patch) | |
tree | 8fbaa11502a79bb31e17ddd0aab09e980863397d /gdb/auxv.c | |
parent | 2e877f5ecb5916d147f91dfad461a8fa5017d8b0 (diff) | |
download | fsf-binutils-gdb-27a48a9223d0c7558f0bfde2d704d4a660f5d4ea.zip fsf-binutils-gdb-27a48a9223d0c7558f0bfde2d704d4a660f5d4ea.tar.gz fsf-binutils-gdb-27a48a9223d0c7558f0bfde2d704d4a660f5d4ea.tar.bz2 |
Add auxv parsing to the architecture vector.
Necessary to fix parsing auxv entries from core files on systems that use
the layout specified by ELF instead of the incompatible variant used by Linux.
gdb/Changelog:
* gdbarch.sh (auxv_parse): New.
* gdbarch.h: Regenerated.
* gdbarch.c: Regenerated.
* auxv.c (target_auxv_parse): Call gdbarch_parse_auxv if provided.
Diffstat (limited to 'gdb/auxv.c')
-rw-r--r-- | gdb/auxv.c | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -287,6 +287,11 @@ int target_auxv_parse (struct target_ops *ops, gdb_byte **readptr, gdb_byte *endptr, CORE_ADDR *typep, CORE_ADDR *valp) { + struct gdbarch *gdbarch = target_gdbarch(); + + if (gdbarch_auxv_parse_p (gdbarch)) + return gdbarch_auxv_parse (gdbarch, readptr, endptr, typep, valp); + return current_target.to_auxv_parse (¤t_target, readptr, endptr, typep, valp); } |