+2012-09-17 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ Code cleanup - rename 'inline' depth to 'artificial' depth.
+ * breakpoint.c (set_momentary_breakpoint): Rename at a caller to
+ frame_id_artificial_p, extend the comment.
+ * dwarf2-frame-tailcall.c (tailcall_frame_this_id): Rename at a user.
+ * frame.c (fprint_frame_id): Rename at a user, change debug output
+ text to "artificial=".
+ (skip_inlined_frames): Rename to ...
+ (skip_artificial_frames): ... here. Extend the comment.
+ (get_stack_frame_id, frame_unwind_caller_id): Rename at a caller.
+ (frame_id_inlined_p): Rename to ...
+ (frame_id_artificial_p): ... here. Rename at a user.
+ (frame_id_eq, frame_id_inner, frame_unwind_caller_pc)
+ (frame_unwind_caller_pc_if_available, frame_unwind_caller_arch): Rename
+ at a user.
+ * frame.h (struct frame_id): Rename inline_depth to artificial_depth.
+ Extend the comment.
+ (frame_id_inlined_p): Rename to ...
+ (frame_id_artificial_p): ... here.
+ * inline-frame.c (inline_frame_this_id): Rename at a user.
+
2012-09-14 Andrew Burgess <aburgess@broadcom.com>
* c-typeprint.c (c_type_print_varspec_suffix): Display the size of
fprint_field (file, "code", id.code_addr_p, id.code_addr);
fprintf_unfiltered (file, ",");
fprint_field (file, "special", id.special_addr_p, id.special_addr);
- if (id.inline_depth)
- fprintf_unfiltered (file, ",inlined=%d", id.inline_depth);
+ if (id.artificial_depth)
+ fprintf_unfiltered (file, ",artificial=%d", id.artificial_depth);
fprintf_unfiltered (file, "}");
}
fprintf_unfiltered (file, "}");
}
-/* Given FRAME, return the enclosing normal frame for inlined
- function frames. Otherwise return the original frame. */
+/* Given FRAME, return the enclosing frame as found in real frames read-in from
+ inferior memory. Skip any previous frames which were made up by GDB.
+ Return the original frame if no immediate previous frames exist. */
static struct frame_info *
-skip_inlined_frames (struct frame_info *frame)
+skip_artificial_frames (struct frame_info *frame)
{
while (get_frame_type (frame) == INLINE_FRAME)
frame = get_prev_frame (frame);
struct frame_id
get_stack_frame_id (struct frame_info *next_frame)
{
- return get_frame_id (skip_inlined_frames (next_frame));
+ return get_frame_id (skip_artificial_frames (next_frame));
}
struct frame_id
returning a null_frame_id (e.g., when a caller requests the frame
ID of "main()"s caller. */
- next_frame = skip_inlined_frames (next_frame);
+ next_frame = skip_artificial_frames (next_frame);
this_frame = get_prev_frame_1 (next_frame);
if (this_frame)
- return get_frame_id (skip_inlined_frames (this_frame));
+ return get_frame_id (skip_artificial_frames (this_frame));
else
return null_frame_id;
}
}
int
-frame_id_inlined_p (struct frame_id l)
+frame_id_artificial_p (struct frame_id l)
{
if (!frame_id_p (l))
return 0;
- return (l.inline_depth != 0);
+ return (l.artificial_depth != 0);
}
int
/* An invalid special addr is a wild card (or unused). Otherwise
if special addresses are different, the frames are different. */
eq = 0;
- else if (l.inline_depth != r.inline_depth)
- /* If inline depths are different, the frames must be different. */
+ else if (l.artificial_depth != r.artificial_depth)
+ /* If artifical depths are different, the frames must be different. */
eq = 0;
else
/* Frames are equal. */
if (!l.stack_addr_p || !r.stack_addr_p)
/* Like NaN, any operation involving an invalid ID always fails. */
inner = 0;
- else if (l.inline_depth > r.inline_depth
+ else if (l.artificial_depth > r.artificial_depth
&& l.stack_addr == r.stack_addr
&& l.code_addr_p == r.code_addr_p
&& l.special_addr_p == r.special_addr_p
CORE_ADDR
frame_unwind_caller_pc (struct frame_info *this_frame)
{
- return frame_unwind_pc (skip_inlined_frames (this_frame));
+ return frame_unwind_pc (skip_artificial_frames (this_frame));
}
int
frame_unwind_caller_pc_if_available (struct frame_info *this_frame,
CORE_ADDR *pc)
{
- return frame_unwind_pc_if_available (skip_inlined_frames (this_frame), pc);
+ return frame_unwind_pc_if_available (skip_artificial_frames (this_frame), pc);
}
int
struct gdbarch *
frame_unwind_caller_arch (struct frame_info *next_frame)
{
- return frame_unwind_arch (skip_inlined_frames (next_frame));
+ return frame_unwind_arch (skip_artificial_frames (next_frame));
}
/* Stack pointer methods. */
unsigned int code_addr_p : 1;
unsigned int special_addr_p : 1;
- /* The inline depth of this frame. A frame representing a "called"
- inlined function will have this set to a nonzero value. */
- int inline_depth;
+ /* It is non-zero for a frame made up by GDB without stack data
+ representation in inferior, such as INLINE_FRAME or TAILCALL_FRAME.
+ Caller of inlined function will have it zero, each more inner called frame
+ will have it increasingly one, two etc. Similarly for TAILCALL_FRAME. */
+ int artificial_depth;
};
/* Methods for constructing and comparing Frame IDs. */
ID. */
extern int frame_id_p (struct frame_id l);
-/* Returns non-zero when L is a valid frame representing an inlined
- function. */
-extern int frame_id_inlined_p (struct frame_id l);
+/* Returns non-zero when L is a valid frame representing a frame made up by GDB
+ without stack data representation in inferior, such as INLINE_FRAME or
+ TAILCALL_FRAME. */
+extern int frame_id_artificial_p (struct frame_id l);
/* Returns non-zero when L and R identify the same frame, or, if
either L or R have a zero .func, then the same frame base. */