aboutsummaryrefslogtreecommitdiff
path: root/gdb/stack.c
diff options
context:
space:
mode:
authorUlrich Weigand <uweigand@de.ibm.com>2009-07-02 17:09:28 +0000
committerUlrich Weigand <uweigand@de.ibm.com>2009-07-02 17:09:28 +0000
commit36f15f554fcea7aedfdcdabcdd19e927b623d615 (patch)
tree5a463a24d70815849ae47b1b8547f6e1bc1f3633 /gdb/stack.c
parent848f574829bcbcc1ce46870e898fbb1118ff7130 (diff)
downloadgdb-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/stack.c')
-rw-r--r--gdb/stack.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/gdb/stack.c b/gdb/stack.c
index 0f5b426..7117f27 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -522,7 +522,8 @@ print_frame_info (struct frame_info *frame, int print_level,
int location_print;
if (get_frame_type (frame) == DUMMY_FRAME
- || get_frame_type (frame) == SIGTRAMP_FRAME)
+ || get_frame_type (frame) == SIGTRAMP_FRAME
+ || get_frame_type (frame) == ARCH_FRAME)
{
struct cleanup *uiout_cleanup
= make_cleanup_ui_out_tuple_begin_end (uiout, "frame");
@@ -555,6 +556,10 @@ print_frame_info (struct frame_info *frame, int print_level,
annotate_signal_handler_caller ();
ui_out_field_string (uiout, "func", "<signal handler called>");
}
+ else if (get_frame_type (frame) == ARCH_FRAME)
+ {
+ ui_out_field_string (uiout, "func", "<cross-architecture call>");
+ }
ui_out_text (uiout, "\n");
annotate_frame_end ();