2002-12-08 Andrew Cagney <ac131313@redhat.com>

* stack.c (frame_info): Use get_prev_frame.
	* blockframe.c (frame_address_in_block): Ditto.
	* rs6000-tdep.c (rs6000_init_extra_frame_info): Ditto.
	(rs6000_frameless_function_invocation): Ditto.
	(rs6000_frame_saved_pc): Ditto.
	(rs6000_frame_chain): Ditto.
	* arch-utils.c (init_frame_pc_default): Ditto.
This commit is contained in:
Andrew Cagney 2002-12-09 00:32:08 +00:00
parent 559747269f
commit 75e3c1f98d
5 changed files with 28 additions and 16 deletions

View file

@ -1,3 +1,13 @@
2002-12-08 Andrew Cagney <ac131313@redhat.com>
* stack.c (frame_info): Use get_prev_frame.
* blockframe.c (frame_address_in_block): Ditto.
* rs6000-tdep.c (rs6000_init_extra_frame_info): Ditto.
(rs6000_frameless_function_invocation): Ditto.
(rs6000_frame_saved_pc): Ditto.
(rs6000_frame_chain): Ditto.
* arch-utils.c (init_frame_pc_default): Ditto.
2002-12-08 Andrew Cagney <ac131313@redhat.com>
* config/mn10200/tm-mn10200.h (DEPRECATED_PC_IN_CALL_DUMMY):

View file

@ -383,9 +383,9 @@ void
init_frame_pc_default (int fromleaf, struct frame_info *prev)
{
if (fromleaf)
prev->pc = SAVED_PC_AFTER_CALL (prev->next);
else if (prev->next != NULL)
prev->pc = FRAME_SAVED_PC (prev->next);
prev->pc = SAVED_PC_AFTER_CALL (get_next_frame (prev));
else if (get_next_frame (prev) != NULL)
prev->pc = FRAME_SAVED_PC (get_next_frame (prev));
else
prev->pc = read_pc ();
}

View file

@ -213,8 +213,8 @@ frame_address_in_block (struct frame_info *frame)
/* FIXME: cagney/2002-11-10: Should this instead test for
NORMAL_FRAME? A dummy frame (in fact all the abnormal frames)
save the PC value in the block. */
if (frame->next != 0
&& get_frame_type (frame->next) != SIGTRAMP_FRAME)
if (get_next_frame (frame) != 0
&& get_frame_type (get_next_frame (frame)) != SIGTRAMP_FRAME)
--pc;
return pc;

View file

@ -169,7 +169,7 @@ rs6000_init_extra_frame_info (int fromleaf, struct frame_info *fi)
fi->extra_info = (struct frame_extra_info *)
frame_obstack_alloc (sizeof (struct frame_extra_info));
fi->extra_info->initial_sp = 0;
if (fi->next != (CORE_ADDR) 0
if (get_next_frame (fi) != (CORE_ADDR) 0
&& fi->pc < TEXT_SEGMENT_BASE)
/* We're in get_prev_frame */
/* and this is a special signal frame. */
@ -1477,7 +1477,8 @@ rs6000_frameless_function_invocation (struct frame_info *fi)
/* Don't even think about framelessness except on the innermost frame
or if the function was interrupted by a signal. */
if (fi->next != NULL && !(get_frame_type (fi->next) == SIGTRAMP_FRAME))
if (get_next_frame (fi) != NULL
&& !(get_frame_type (get_next_frame (fi)) == SIGTRAMP_FRAME))
return 0;
func_start = get_pc_function_start (fi->pc);
@ -1526,10 +1527,11 @@ rs6000_frame_saved_pc (struct frame_info *fi)
(void) skip_prologue (func_start, fi->pc, &fdata);
if (fdata.lr_offset == 0 && fi->next != NULL)
if (fdata.lr_offset == 0 && get_next_frame (fi) != NULL)
{
if ((get_frame_type (fi->next) == SIGTRAMP_FRAME))
return read_memory_addr (fi->next->frame + SIG_FRAME_LR_OFFSET,
if ((get_frame_type (get_next_frame (fi)) == SIGTRAMP_FRAME))
return read_memory_addr (get_next_frame (fi)->frame
+ SIG_FRAME_LR_OFFSET,
wordsize);
else if (DEPRECATED_PC_IN_CALL_DUMMY (get_next_frame (fi)->pc, 0, 0))
/* The link register wasn't saved by this frame and the next
@ -1756,8 +1758,8 @@ rs6000_frame_chain (struct frame_info *thisframe)
if ((get_frame_type (thisframe) == SIGTRAMP_FRAME))
fp = read_memory_addr (thisframe->frame + SIG_FRAME_FP_OFFSET,
wordsize);
else if (thisframe->next != NULL
&& (get_frame_type (thisframe->next) == SIGTRAMP_FRAME)
else if (get_next_frame (thisframe) != NULL
&& (get_frame_type (get_next_frame (thisframe)) == SIGTRAMP_FRAME)
&& FRAMELESS_FUNCTION_INVOCATION (thisframe))
/* A frameless function interrupted by a signal did not change the
frame pointer. */

View file

@ -837,15 +837,15 @@ frame_info (char *addr_exp, int from_tty)
printf_filtered (" called by frame at ");
print_address_numeric (calling_frame_info->frame, 1, gdb_stdout);
}
if (fi->next && calling_frame_info)
if (get_next_frame (fi) && calling_frame_info)
puts_filtered (",");
wrap_here (" ");
if (fi->next)
if (get_next_frame (fi))
{
printf_filtered (" caller of frame at ");
print_address_numeric (fi->next->frame, 1, gdb_stdout);
print_address_numeric (get_next_frame (fi)->frame, 1, gdb_stdout);
}
if (fi->next || calling_frame_info)
if (get_next_frame (fi) || calling_frame_info)
puts_filtered ("\n");
if (s)
printf_filtered (" source language %s.\n",