extern int addressprint; /* Print addresses, or stay symbolic only? */
-/* The "selected" stack frame is used by default for local and arg access.
- May be zero, for no selected frame. */
-
-struct frame_info *selected_frame;
-
/* Zero means do things normally; we are interacting directly with the
user. One means print the full filename and linenumber when a
frame is printed, and do so in a format emacs18/emacs19.22 can
switch (numargs)
{
case 0:
- if (selected_frame == NULL)
+ if (deprecated_selected_frame == NULL)
error ("No selected frame.");
- return selected_frame;
+ return deprecated_selected_frame;
/* NOTREACHED */
case 1:
{
}
calling_frame_info = get_prev_frame (fi);
- if (!addr_exp && frame_relative_level (selected_frame) >= 0)
+ if (!addr_exp && frame_relative_level (deprecated_selected_frame) >= 0)
{
printf_filtered ("Stack level %d, frame at ",
- frame_relative_level (selected_frame));
+ frame_relative_level (deprecated_selected_frame));
print_address_numeric (fi->frame, 1, gdb_stdout);
printf_filtered (":\n");
}
void
locals_info (char *args, int from_tty)
{
- if (!selected_frame)
+ if (!deprecated_selected_frame)
error ("No frame selected.");
- print_frame_local_vars (selected_frame, 0, gdb_stdout);
+ print_frame_local_vars (deprecated_selected_frame, 0, gdb_stdout);
}
static void
system to find the list of active handlers, etc. */
fprintf_filtered (gdb_stdout, "Info catch not supported with this target/compiler combination.\n");
#if 0
- if (!selected_frame)
+ if (!deprecated_selected_frame)
error ("No frame selected.");
#endif
}
else
{
/* Assume g++ compiled code -- old v 4.16 behaviour */
- if (!selected_frame)
+ if (!deprecated_selected_frame)
error ("No frame selected.");
- print_frame_label_vars (selected_frame, 0, gdb_stdout);
+ print_frame_label_vars (deprecated_selected_frame, 0, gdb_stdout);
}
}
void
args_info (char *ignore, int from_tty)
{
- if (!selected_frame)
+ if (!deprecated_selected_frame)
error ("No frame selected.");
- print_frame_arg_vars (selected_frame, gdb_stdout);
+ print_frame_arg_vars (deprecated_selected_frame, gdb_stdout);
}
}
\f
-/* Select frame FI (or NULL - to invalidate the current frame). */
-
-void
-select_frame (struct frame_info *fi)
-{
- register struct symtab *s;
-
- selected_frame = fi;
- /* NOTE: cagney/2002-05-04: FI can be NULL. This occures when the
- frame is being invalidated. */
- if (selected_frame_level_changed_hook)
- selected_frame_level_changed_hook (frame_relative_level (fi));
-
- /* FIXME: kseitz/2002-08-28: It would be nice to call
- selected_frame_level_changed_event right here, but due to limitations
- in the current interfaces, we would end up flooding UIs with events
- because select_frame is used extensively internally.
-
- Once we have frame-parameterized frame (and frame-related) commands,
- the event notification can be moved here, since this function will only
- be called when the users selected frame is being changed. */
-
- /* Ensure that symbols for this frame are read in. Also, determine the
- source language of this frame, and switch to it if desired. */
- if (fi)
- {
- s = find_pc_symtab (fi->pc);
- if (s
- && s->language != current_language->la_language
- && s->language != language_unknown
- && language_mode == language_mode_auto)
- {
- set_language (s->language);
- }
- }
-}
-\f
-
/* Select frame FI. Also print the stack frame and show the source if
this is the tui version. */
static void
past but is no longer the case. A mindless look at all the
callers tends to support this theory. I think we should be able
to assume that there is always a selcted frame. */
- /* gdb_assert (selected_frame != NULL); So, do you feel lucky? */
- if (!selected_frame)
+ /* gdb_assert (deprecated_selected_frame != NULL); So, do you feel
+ lucky? */
+ if (!deprecated_selected_frame)
{
CORE_ADDR pc = read_pc ();
if (addr_in_block != NULL)
*addr_in_block = pc;
return block_for_pc (pc);
}
- return get_frame_block (selected_frame, addr_in_block);
+ return get_frame_block (deprecated_selected_frame, addr_in_block);
}
/* Find a frame a certain number of levels away from FRAME.
select_frame_command (char *level_exp, int from_tty)
{
struct frame_info *frame;
- int level = frame_relative_level (selected_frame);
+ int level = frame_relative_level (deprecated_selected_frame);
if (!target_has_stack)
error ("No stack.");
frame = parse_frame_specification (level_exp);
select_frame (frame);
- if (level != frame_relative_level (selected_frame))
- selected_frame_level_changed_event (frame_relative_level (selected_frame));
+ if (level != frame_relative_level (deprecated_selected_frame))
+ selected_frame_level_changed_event (frame_relative_level (deprecated_selected_frame));
}
/* The "frame" command. With no arg, print selected frame briefly.
frame_command (char *level_exp, int from_tty)
{
select_frame_command (level_exp, from_tty);
- show_and_print_stack_frame (selected_frame,
- frame_relative_level (selected_frame), 1);
+ show_and_print_stack_frame (deprecated_selected_frame,
+ frame_relative_level (deprecated_selected_frame), 1);
}
/* The XDB Compatibility command to print the current frame. */
static void
current_frame_command (char *level_exp, int from_tty)
{
- if (target_has_stack == 0 || selected_frame == 0)
+ if (target_has_stack == 0 || deprecated_selected_frame == 0)
error ("No stack.");
- print_only_stack_frame (selected_frame,
- frame_relative_level (selected_frame), 1);
+ print_only_stack_frame (deprecated_selected_frame,
+ frame_relative_level (deprecated_selected_frame), 1);
}
/* Select the frame up one or COUNT stack levels
count = parse_and_eval_long (count_exp);
count1 = count;
- if (target_has_stack == 0 || selected_frame == 0)
+ if (target_has_stack == 0 || deprecated_selected_frame == 0)
error ("No stack.");
- fi = find_relative_frame (selected_frame, &count1);
+ fi = find_relative_frame (deprecated_selected_frame, &count1);
if (count1 != 0 && count_exp == 0)
error ("Initial frame selected; you cannot go up.");
select_frame (fi);
- selected_frame_level_changed_event (frame_relative_level (selected_frame));
+ selected_frame_level_changed_event (frame_relative_level (deprecated_selected_frame));
}
static void
up_command (char *count_exp, int from_tty)
{
up_silently_base (count_exp);
- show_and_print_stack_frame (selected_frame,
- frame_relative_level (selected_frame), 1);
+ show_and_print_stack_frame (deprecated_selected_frame,
+ frame_relative_level (deprecated_selected_frame), 1);
}
/* Select the frame down one or COUNT stack levels
count = -parse_and_eval_long (count_exp);
count1 = count;
- if (target_has_stack == 0 || selected_frame == 0)
+ if (target_has_stack == 0 || deprecated_selected_frame == 0)
error ("No stack.");
- frame = find_relative_frame (selected_frame, &count1);
+ frame = find_relative_frame (deprecated_selected_frame, &count1);
if (count1 != 0 && count_exp == 0)
{
}
select_frame (frame);
- selected_frame_level_changed_event (frame_relative_level (selected_frame));
+ selected_frame_level_changed_event (frame_relative_level (deprecated_selected_frame));
}
/* ARGSUSED */
down_command (char *count_exp, int from_tty)
{
down_silently_base (count_exp);
- show_and_print_stack_frame (selected_frame,
- frame_relative_level (selected_frame), 1);
+ show_and_print_stack_frame (deprecated_selected_frame,
+ frame_relative_level (deprecated_selected_frame), 1);
}
\f
void
struct frame_info *frame;
struct value *return_value = NULL;
- if (selected_frame == NULL)
+ if (deprecated_selected_frame == NULL)
error ("No selected frame.");
- thisfun = get_frame_function (selected_frame);
- selected_frame_addr = get_frame_base (selected_frame);
- selected_frame_pc = selected_frame->pc;
+ thisfun = get_frame_function (deprecated_selected_frame);
+ selected_frame_addr = get_frame_base (deprecated_selected_frame);
+ selected_frame_pc = deprecated_selected_frame->pc;
/* Compute the return value (if any -- possibly getting errors here). */
}
/* Do the real work. Pop until the specified frame is current. We
- use this method because the selected_frame is not valid after
+ use this method because the deprecated_selected_frame is not valid after
a POP_FRAME. The pc comparison makes this work even if the
selected frame shares its fp with another frame. */
if (!found)
printf_filtered ("'%s' not within current stack frame.\n", arg);
- else if (fp != selected_frame)
+ else if (fp != deprecated_selected_frame)
select_and_print_frame (fp);
}
register struct symtab *s;
enum language flang; /* The language of the current frame */
- if (selected_frame)
+ if (deprecated_selected_frame)
{
- s = find_pc_symtab (selected_frame->pc);
+ s = find_pc_symtab (deprecated_selected_frame->pc);
if (s)
flang = s->language;
else