This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

ppc_linux_init_extra_frame_info


ppc_linux_init_extra_frame_info is clobbering the frame type which
causes dummy_frame_pop to bail out.  The frame type is now set before
INIT_FRAME_INFO is called.

Andreas.

2003-02-21  Andreas Schwab  <schwab at suse dot de>

	* ppc-linux-tdep.c (ppc_linux_init_extra_frame_info): Don't set
	frame type to NORMAL_FRAME now that get_prev_frame sets frame
	type before calling INIT_FRAME_INFO.

--- gdb/ppc-linux-tdep.c.~1.23.~	2003-02-04 23:12:42.000000000 +0100
+++ gdb/ppc-linux-tdep.c	2003-02-21 00:29:39.000000000 +0100
@@ -146,18 +146,7 @@ static int ppc_linux_at_sigtramp_return_
    the first instruction of the handler is stepped over instead.  That
    puts us on the second instruction.  (I added the test for the
    first instruction long after the fact, just in case the observed
-   behavior is ever fixed.)
-
-   PC_IN_SIGTRAMP is called from blockframe.c as well in order to set
-   the frame's type (if a SIGTRAMP_FRAME).  Because of our strange
-   definition of in_sigtramp below, we can't rely on the frame's type
-   getting set correctly from within blockframe.c.  This is why we
-   take pains to set it in init_extra_frame_info().
-
-   NOTE: cagney/2002-11-10: I suspect the real problem here is that
-   the get_prev_frame() only initializes the frame's type after the
-   call to INIT_FRAME_INFO.  get_prev_frame() should be fixed, this
-   code shouldn't be working its way around a bug :-(.  */
+   behavior is ever fixed.)  */
 
 int
 ppc_linux_in_sigtramp (CORE_ADDR pc, char *func_name)
@@ -374,10 +363,6 @@ ppc_linux_init_extra_frame_info (int fro
          at trampoline code */
       if (ppc_linux_at_sigtramp_return_path (fi->pc))
 	deprecated_set_frame_type (fi, SIGTRAMP_FRAME);
-      else
-	/* FIXME: cagney/2002-11-10: Is this double bogus?  What
-           happens if the frame has previously been marked as a dummy?  */
-	deprecated_set_frame_type (fi, NORMAL_FRAME);
     }
 }
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]