aboutsummaryrefslogtreecommitdiff
path: root/gdb/auxv.c
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2014-02-27 13:40:15 +0100
committerMark Kettenis <kettenis@gnu.org>2014-02-27 13:40:15 +0100
commit27a48a9223d0c7558f0bfde2d704d4a660f5d4ea (patch)
tree8fbaa11502a79bb31e17ddd0aab09e980863397d /gdb/auxv.c
parent2e877f5ecb5916d147f91dfad461a8fa5017d8b0 (diff)
downloadgdb-27a48a9223d0c7558f0bfde2d704d4a660f5d4ea.zip
gdb-27a48a9223d0c7558f0bfde2d704d4a660f5d4ea.tar.gz
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.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/auxv.c b/gdb/auxv.c
index ce0a71c..0f322e6 100644
--- a/gdb/auxv.c
+++ b/gdb/auxv.c
@@ -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 (&current_target, readptr, endptr,
typep, valp);
}