+2015-10-12 Andrew Burgess <andrew.burgess@embecosm.com>
+
+ * stack.c (parse_frame_specification): Delete.
+ (parse_frame_specification_1): Rename to
+ parse_frame_specification.
+ (frame_info): Use parse_frame_specification.
+ (select_frame_command): Likewise.
+ (return_command): Use select_frame and print_stack_frame rather
+ than frame_command and select_frame_command.
+ (func_command): Use get_current_frame rather than
+ parse_frame_specification.
+
2015-10-12 Andrew Burgess <andrew.burgess@embecosm.com>
* stack.c (func_command): Return early when there is no ARG
the default selected frame was used. */
static struct frame_info *
-parse_frame_specification_1 (const char *frame_exp, const char *message,
- int *selected_frame_p)
+parse_frame_specification (const char *frame_exp, const char *message,
+ int *selected_frame_p)
{
int numargs;
struct value *args[4];
error (_("Too many args in frame specification"));
}
-static struct frame_info *
-parse_frame_specification (char *frame_exp)
-{
- return parse_frame_specification_1 (frame_exp, NULL, NULL);
-}
-
/* Print verbosely the selected frame or the frame at address
ADDR_EXP. Absolutely all information in the frame is printed. */
CORE_ADDR caller_pc = 0;
int caller_pc_p = 0;
- fi = parse_frame_specification_1 (addr_exp, "No stack.", &selected_frame_p);
+ fi = parse_frame_specification (addr_exp, "No stack.", &selected_frame_p);
gdbarch = get_frame_arch (fi);
/* Name of the value returned by get_frame_pc(). Per comments, "pc"
void
select_frame_command (char *level_exp, int from_tty)
{
- select_frame (parse_frame_specification_1 (level_exp, "No stack.", NULL));
+ select_frame (parse_frame_specification (level_exp, "No stack.", NULL));
}
/* The "frame" command. With no argument, print the selected frame
if (get_frame_type (get_current_frame ()) == DUMMY_FRAME)
frame_pop (get_current_frame ());
+ select_frame (get_current_frame ());
/* If interactive, print the frame that is now current. */
if (from_tty)
- frame_command ("0", 1);
- else
- select_frame_command ("0", 0);
+ print_stack_frame (get_selected_frame (NULL), 1, SRC_AND_LOC, 1);
}
/* Sets the scope to input function name, provided that the function
if (arg == NULL)
return;
- frame = parse_frame_specification ("0");
+ frame = get_current_frame ();
sals = decode_line_with_current_source (arg, DECODE_LINE_FUNFIRSTLINE);
cleanups = make_cleanup (xfree, sals.sals);
func_bounds = XNEWVEC (struct function_bounds, sals.nelts);