I am currently working with these functions, and though this renaming
could help to reason about the code. Some functions take a frame and
will return the value associated to that frame, others will return the
value associated to the previous frame. Those usually conveniently
contain "unwind" in their name, but naming the variable next_frame
instead of frame helps remembering which frame we are dealing with.
I also included a little typo fix at the top of frame.h.
gdb/ChangeLog:
* frame.c (frame_register_unwind): Change parameter name.
(frame_unwind_register): Likewise.
(frame_unwind_register_value): Likewise.
(frame_unwind_register_signed): Likewise.
(frame_unwind_register_unsigned): Likewise.
* frame.h (frame_register_unwind): Likewise.
(frame_unwind_register): Likewise.
(frame_unwind_register_value): Likewise.
(frame_unwind_register_signed): Likewise.
(frame_unwind_register_unsigned): Likewise.
(frame_unwind_arch): Likewise.
+2018-07-20 Simon Marchi <simon.marchi@polymtl.ca>
+
+ * frame.c (frame_register_unwind): Change parameter name.
+ (frame_unwind_register): Likewise.
+ (frame_unwind_register_value): Likewise.
+ (frame_unwind_register_signed): Likewise.
+ (frame_unwind_register_unsigned): Likewise.
+ * frame.h (frame_register_unwind): Likewise.
+ (frame_unwind_register): Likewise.
+ (frame_unwind_register_value): Likewise.
+ (frame_unwind_register_signed): Likewise.
+ (frame_unwind_register_unsigned): Likewise.
+ (frame_unwind_arch): Likewise.
+
2018-07-20 Maciej W. Rozycki <macro@mips.com>
* MAINTAINERS: Update my e-mail address, downgrade to MIPS I-IV
2018-07-20 Maciej W. Rozycki <macro@mips.com>
* MAINTAINERS: Update my e-mail address, downgrade to MIPS I-IV
-frame_register_unwind (struct frame_info *frame, int regnum,
+frame_register_unwind (frame_info *next_frame, int regnum,
int *optimizedp, int *unavailablep,
enum lval_type *lvalp, CORE_ADDR *addrp,
int *realnump, gdb_byte *bufferp)
int *optimizedp, int *unavailablep,
enum lval_type *lvalp, CORE_ADDR *addrp,
int *realnump, gdb_byte *bufferp)
gdb_assert (realnump != NULL);
/* gdb_assert (bufferp != NULL); */
gdb_assert (realnump != NULL);
/* gdb_assert (bufferp != NULL); */
- value = frame_unwind_register_value (frame, regnum);
+ value = frame_unwind_register_value (next_frame, regnum);
gdb_assert (value != NULL);
gdb_assert (value != NULL);
-frame_unwind_register (struct frame_info *frame, int regnum, gdb_byte *buf)
+frame_unwind_register (frame_info *next_frame, int regnum, gdb_byte *buf)
{
int optimized;
int unavailable;
{
int optimized;
int unavailable;
int realnum;
enum lval_type lval;
int realnum;
enum lval_type lval;
- frame_register_unwind (frame, regnum, &optimized, &unavailable,
+ frame_register_unwind (next_frame, regnum, &optimized, &unavailable,
&lval, &addr, &realnum, buf);
if (optimized)
&lval, &addr, &realnum, buf);
if (optimized)
-frame_unwind_register_value (struct frame_info *frame, int regnum)
+frame_unwind_register_value (frame_info *next_frame, int regnum)
{
struct gdbarch *gdbarch;
struct value *value;
{
struct gdbarch *gdbarch;
struct value *value;
- gdb_assert (frame != NULL);
- gdbarch = frame_unwind_arch (frame);
+ gdb_assert (next_frame != NULL);
+ gdbarch = frame_unwind_arch (next_frame);
if (frame_debug)
{
fprintf_unfiltered (gdb_stdlog,
"{ frame_unwind_register_value "
"(frame=%d,regnum=%d(%s),...) ",
if (frame_debug)
{
fprintf_unfiltered (gdb_stdlog,
"{ frame_unwind_register_value "
"(frame=%d,regnum=%d(%s),...) ",
+ next_frame->level, regnum,
user_reg_map_regnum_to_name (gdbarch, regnum));
}
/* Find the unwinder. */
user_reg_map_regnum_to_name (gdbarch, regnum));
}
/* Find the unwinder. */
- if (frame->unwind == NULL)
- frame_unwind_find_by_frame (frame, &frame->prologue_cache);
+ if (next_frame->unwind == NULL)
+ frame_unwind_find_by_frame (next_frame, &next_frame->prologue_cache);
/* Ask this frame to unwind its register. */
/* Ask this frame to unwind its register. */
- value = frame->unwind->prev_register (frame, &frame->prologue_cache, regnum);
+ value = next_frame->unwind->prev_register (next_frame,
+ &next_frame->prologue_cache,
+ regnum);
-frame_unwind_register_signed (struct frame_info *frame, int regnum)
+frame_unwind_register_signed (frame_info *next_frame, int regnum)
- struct gdbarch *gdbarch = frame_unwind_arch (frame);
+ struct gdbarch *gdbarch = frame_unwind_arch (next_frame);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int size = register_size (gdbarch, regnum);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int size = register_size (gdbarch, regnum);
- struct value *value = frame_unwind_register_value (frame, regnum);
+ struct value *value = frame_unwind_register_value (next_frame, regnum);
gdb_assert (value != NULL);
gdb_assert (value != NULL);
-frame_unwind_register_unsigned (struct frame_info *frame, int regnum)
+frame_unwind_register_unsigned (frame_info *next_frame, int regnum)
- struct gdbarch *gdbarch = frame_unwind_arch (frame);
+ struct gdbarch *gdbarch = frame_unwind_arch (next_frame);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int size = register_size (gdbarch, regnum);
enum bfd_endian byte_order = gdbarch_byte_order (gdbarch);
int size = register_size (gdbarch, regnum);
- struct value *value = frame_unwind_register_value (frame, regnum);
+ struct value *value = frame_unwind_register_value (next_frame, regnum);
gdb_assert (value != NULL);
gdb_assert (value != NULL);
- get_frame_WHAT...(): Get WHAT from the THIS frame (functionaly
+ get_frame_WHAT...(): Get WHAT from the THIS frame (functionally
equivalent to THIS->next->unwind->what)
frame_unwind_WHAT...(): Unwind THIS frame's WHAT from the NEXT
equivalent to THIS->next->unwind->what)
frame_unwind_WHAT...(): Unwind THIS frame's WHAT from the NEXT
(up, older) frame is returned. If VALUEP is NULL, don't
fetch/compute the value. Instead just return the location of the
value. */
(up, older) frame is returned. If VALUEP is NULL, don't
fetch/compute the value. Instead just return the location of the
value. */
-extern void frame_register_unwind (struct frame_info *frame, int regnum,
+extern void frame_register_unwind (frame_info *frame, int regnum,
int *optimizedp, int *unavailablep,
enum lval_type *lvalp,
CORE_ADDR *addrp, int *realnump,
int *optimizedp, int *unavailablep,
enum lval_type *lvalp,
CORE_ADDR *addrp, int *realnump,
fetch fails. The value methods never return NULL, but usually
do return a lazy value. */
fetch fails. The value methods never return NULL, but usually
do return a lazy value. */
-extern void frame_unwind_register (struct frame_info *frame,
+extern void frame_unwind_register (frame_info *next_frame,
int regnum, gdb_byte *buf);
extern void get_frame_register (struct frame_info *frame,
int regnum, gdb_byte *buf);
int regnum, gdb_byte *buf);
extern void get_frame_register (struct frame_info *frame,
int regnum, gdb_byte *buf);
-struct value *frame_unwind_register_value (struct frame_info *frame,
+struct value *frame_unwind_register_value (frame_info *next_frame,
int regnum);
struct value *get_frame_register_value (struct frame_info *frame,
int regnum);
int regnum);
struct value *get_frame_register_value (struct frame_info *frame,
int regnum);
-extern LONGEST frame_unwind_register_signed (struct frame_info *frame,
+extern LONGEST frame_unwind_register_signed (frame_info *next_frame,
int regnum);
extern LONGEST get_frame_register_signed (struct frame_info *frame,
int regnum);
int regnum);
extern LONGEST get_frame_register_signed (struct frame_info *frame,
int regnum);
-extern ULONGEST frame_unwind_register_unsigned (struct frame_info *frame,
- int regnum);
+extern ULONGEST frame_unwind_register_unsigned (frame_info *frame,
+ int regnum);
extern ULONGEST get_frame_register_unsigned (struct frame_info *frame,
int regnum);
extern ULONGEST get_frame_register_unsigned (struct frame_info *frame,
int regnum);
extern struct gdbarch *get_frame_arch (struct frame_info *this_frame);
/* Return the previous frame's architecture. */
extern struct gdbarch *get_frame_arch (struct frame_info *this_frame);
/* Return the previous frame's architecture. */
-extern struct gdbarch *frame_unwind_arch (struct frame_info *frame);
+extern struct gdbarch *frame_unwind_arch (frame_info *next_frame);
/* Return the previous frame's architecture, skipping inline functions. */
extern struct gdbarch *frame_unwind_caller_arch (struct frame_info *frame);
/* Return the previous frame's architecture, skipping inline functions. */
extern struct gdbarch *frame_unwind_caller_arch (struct frame_info *frame);