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/frame.h | |
parent | 848f574829bcbcc1ce46870e898fbb1118ff7130 (diff) | |
download | gdb-36f15f554fcea7aedfdcdabcdd19e927b623d615.zip gdb-36f15f554fcea7aedfdcdabcdd19e927b623d615.tar.gz gdb-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/frame.h')
-rw-r--r-- | gdb/frame.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gdb/frame.h b/gdb/frame.h index 261c329..febef5c 100644 --- a/gdb/frame.h +++ b/gdb/frame.h @@ -203,6 +203,8 @@ enum frame_type /* In a signal handler, various OSs handle this in various ways. The main thing is that the frame may be far from normal. */ SIGTRAMP_FRAME, + /* Fake frame representing a cross-architecture call. */ + ARCH_FRAME, /* Sentinel or registers frame. This frame obtains register values direct from the inferior's registers. */ SENTINEL_FRAME @@ -545,9 +547,14 @@ extern int safe_frame_unwind_memory (struct frame_info *this_frame, CORE_ADDR addr, gdb_byte *buf, int len); /* Return this frame's architecture. */ - extern struct gdbarch *get_frame_arch (struct frame_info *this_frame); +/* Return the previous frame's architecture. */ +extern struct gdbarch *frame_unwind_arch (struct frame_info *frame); + +/* Return the previous frame's architecture, skipping inline functions. */ +extern struct gdbarch *frame_unwind_caller_arch (struct frame_info *frame); + /* Values for the source flag to be used in print_frame_info_base(). */ enum print_what |