/* Definitions for dealing with stack frames, for GDB, the GNU debugger.
- Copyright (C) 1986-2016 Free Software Foundation, Inc.
+ Copyright (C) 1986-2017 Free Software Foundation, Inc.
This file is part of GDB.
is not found. */
extern struct frame_info *frame_find_by_id (struct frame_id id);
+/* Given a frame's ID, find the previous frame's ID. Returns null_frame_id
+ if the frame is not found. */
+extern struct frame_id get_prev_frame_id_by_id (struct frame_id id);
+
/* Base attributes of a frame: */
/* The frame's `resume' address. Where the program will resume in
find_frame_symtab(), find_frame_function(). Each will need to be
carefully considered to determine if the real intent was for it to
apply to the PC or the adjusted PC. */
-extern void find_frame_sal (struct frame_info *frame,
- struct symtab_and_line *sal);
+extern symtab_and_line find_frame_sal (frame_info *frame);
/* Set the current source and line to the location given by frame
FRAME, if possible. */
extern void read_frame_local (struct symbol *sym, struct frame_info *frame,
struct frame_arg *argp);
-extern void args_info (char *, int);
+extern void info_args_command (char *, int);
-extern void locals_info (char *, int);
+extern void info_locals_command (char *, int);
extern void return_command (char *, int);
extern struct frame_info *create_new_frame (CORE_ADDR base, CORE_ADDR pc);
+#if GDB_SELF_TEST
+
+/* Create a frame for unit test. Its next frame is sentinel frame,
+ created from REGCACHE. */
+
+extern struct frame_info *create_test_frame (struct regcache *regcache);
+#endif
+
/* Return true if the frame unwinder for frame FI is UNWINDER; false
otherwise. */