diff options
author | Ulrich Weigand <uweigand@de.ibm.com> | 2009-07-02 17:09:28 +0000 |
---|---|---|
committer | Ulrich Weigand <uweigand@de.ibm.com> | 2009-07-02 17:09:28 +0000 |
commit | 36f15f554fcea7aedfdcdabcdd19e927b623d615 (patch) | |
tree | 5a463a24d70815849ae47b1b8547f6e1bc1f3633 /gdb/sentinel-frame.c | |
parent | 848f574829bcbcc1ce46870e898fbb1118ff7130 (diff) | |
download | binutils-36f15f554fcea7aedfdcdabcdd19e927b623d615.zip binutils-36f15f554fcea7aedfdcdabcdd19e927b623d615.tar.gz binutils-36f15f554fcea7aedfdcdabcdd19e927b623d615.tar.bz2 |
* frame.h (frame_unwind_arch): New.
(frame_unwind_caller_arch): Likewise.
* frame-unwind.h (frame_prev_arch_ftype): New type.
(struct frame_unwind): New member prev_arch.
* frame.c (struct frame_info): New member prev_arch.
(frame_unwind_arch): New function.
(frame_unwind_caller_arch): Likewise..
(get_frame_arch): Reimplement in terms of frame_unwind_arch.
* sentinel-frame.c (sentinel_frame_prev_arch): New function.
(sentinel_frame_unwinder): Install it.
* frame.c (frame_pc_unwind): Use frame_unwind_arch instead
of get_frame_arch.
(frame_unwind_register_value): Likewise.
(frame_unwind_register_signed): Likewise.
(frame_unwind_register_unsigned): Likewise.
* frame-unwind.c (frame_unwind_got_optimized): Likewise.
(frame_unwind_got_register): Likewise.
(frame_unwind_got_constant): Likewise.
(frame_unwind_got_bytes): Likewise.
(frame_unwind_got_address): Likewise.
* frame.h (enum frame_type): New value ARCH_FRAME.
* frame.c (fprint_frame_type): Handle ARCH_FRAME.
* stack.c (print_frame_info): Likewise.
Diffstat (limited to 'gdb/sentinel-frame.c')
-rw-r--r-- | gdb/sentinel-frame.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gdb/sentinel-frame.c b/gdb/sentinel-frame.c index d20c426..e01d198 100644 --- a/gdb/sentinel-frame.c +++ b/gdb/sentinel-frame.c @@ -76,11 +76,23 @@ sentinel_frame_this_id (struct frame_info *this_frame, internal_error (__FILE__, __LINE__, _("sentinel_frame_this_id called")); } +static struct gdbarch * +sentinel_frame_prev_arch (struct frame_info *this_frame, + void **this_prologue_cache) +{ + struct frame_unwind_cache *cache = *this_prologue_cache; + return get_regcache_arch (cache->regcache); +} + const struct frame_unwind sentinel_frame_unwinder = { SENTINEL_FRAME, sentinel_frame_this_id, - sentinel_frame_prev_register + sentinel_frame_prev_register, + NULL, + NULL, + NULL, + sentinel_frame_prev_arch, }; const struct frame_unwind *const sentinel_frame_unwind = &sentinel_frame_unwinder; |