diff options
author | Pedro Alves <palves@redhat.com> | 2011-03-18 18:44:34 +0000 |
---|---|---|
committer | Pedro Alves <palves@redhat.com> | 2011-03-18 18:44:34 +0000 |
commit | e3eebbd742b7c1820bead11710b71bfee694d7fa (patch) | |
tree | 5d5ad80e0aa482d4985427484fe1555132a757e8 /gdb/macroscope.c | |
parent | 79e1a869ac109293fb60c1909c085ea8c6c7cd12 (diff) | |
download | gdb-e3eebbd742b7c1820bead11710b71bfee694d7fa.zip gdb-e3eebbd742b7c1820bead11710b71bfee694d7fa.tar.gz gdb-e3eebbd742b7c1820bead11710b71bfee694d7fa.tar.bz2 |
gdb/
* frame.c (frame_unwind_pc): Rename to ...
(frame_unwind_pc_if_available): ... this. New `pc' output
parameter. Change return type to int. Gracefully handle
gdbarch_unwind_pc throwing NOT_AVAILABLE_ERROR. Return 0 if that
happened, or 1 otherwise.
(frame_unwind_pc): Reimplement on top of
frame_unwind_pc_if_available.
(get_frame_func): Rename to ...
(get_frame_func_if_available): New `pc' output parameter. Change
return type to int. Gracefully handle the PC not being available.
(get_frame_func): Reimplement on top of
get_frame_func_if_available.
(select_frame): Handle the PC being unavailable.
(get_prev_frame): Handle the PC being unavailable.
(get_frame_pc_if_available): New.
(get_frame_address_in_block_if_available): New.
(find_frame_sal): Handle the frame PC not being available.
* frame.h (get_frame_pc_if_available): Declare.
(get_frame_address_in_block_if_available): Declare.
(get_frame_func_if_available): Declare.
* stack.c (print_frame_info): Handle the PC being unavailable.
(find_frame_funname): Ditto.
(print_frame): Handle the PC being unavailable.
(get_frame_language): Ditto.
* blockframe.c (get_frame_block): Ditto.
* macroscope.c (default_macro_scope): Ditto.
* tui/tui-stack.c (tui_show_frame_info): Ditto.
Diffstat (limited to 'gdb/macroscope.c')
-rw-r--r-- | gdb/macroscope.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gdb/macroscope.c b/gdb/macroscope.c index a93d175..b529e68 100644 --- a/gdb/macroscope.c +++ b/gdb/macroscope.c @@ -102,12 +102,13 @@ default_macro_scope (void) struct symtab_and_line sal; struct macro_scope *ms; struct frame_info *frame; + CORE_ADDR pc; /* If there's a selected frame, use its PC. */ frame = deprecated_safe_get_selected_frame (); - if (frame) - sal = find_pc_line (get_frame_pc (frame), 0); - + if (frame && get_frame_pc_if_available (frame, &pc)) + sal = find_pc_line (pc, 0); + /* Fall back to the current listing position. */ else { |