summaryrefslogtreecommitdiff
path: root/gdb/macroscope.c
diff options
context:
space:
mode:
authorPedro Alves <pedro@codesourcery.com>2011-03-18 18:44:33 +0000
committerPedro Alves <pedro@codesourcery.com>2011-03-18 18:44:33 +0000
commitf86b56bf0dbd0ae8442aadc67aa63d3c78c57c1f (patch)
tree2a45f347e49c35662fc6eb32f446ef716511ba3e /gdb/macroscope.c
parent50c1f7174d688df6a3e1590b666b14d17efc5000 (diff)
downloadgdb-f86b56bf0dbd0ae8442aadc67aa63d3c78c57c1f.tar.gz
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.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gdb/macroscope.c b/gdb/macroscope.c
index a93d175b22f..b529e68c1fd 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
{