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]

Re: [i386newframe/PATCH] New i386newframe branch


   Date: Mon, 28 Apr 2003 18:22:36 -0400
   From: Andrew Cagney <ac131313@redhat.com>

   > +static int
   > +i386_frameless_function_invocation (struct frame_info *frame)
   >  {

   I'd consider deleting it.

   For non legacy architectures, apart from appending "(FRAMELESS)" to the 
   output of "info frame", that architecture method does nothing useful 
   (and even this is marginal :-).  I think a per frame 
   PRINT_EXTRA_FRAME_INFO like function would be more useful. 
   Alternatively, a per-frame ``frameless'' attribute could be added.

Sounds good to me!

   > +const struct frame_unwind *
   > +i386_frame_p (CORE_ADDR pc)
   > +{
   > +  char *name;
   > +
   > +  find_pc_partial_function (pc, &name, NULL, NULL);
   > +  if (PC_IN_SIGTRAMP (pc, name))
   > +    return &i386_sigtramp_frame_unwind;

   The intent was for there to be one predicate function per unwinder.  So 
   the below would be in a separate unwinder, registered separatly.

And you want me to set the right example :-).  No problem.

   > +  return &i386_frame_unwind;
   > +}

   Have you tried adding just the sigtramp unwinder?  I should get just 
   that addition debugged regardless - it should make migrating other ISAs 
   easier.

No I haven't.  I don't think I can.  The problem is that I simplified
the sigtramp unwinder a bit.  However in order to do so, I need to be
able to trust the normal unwinder to unwind the stack pointer
correctly.  Unfortunately the current code is a bit sloppy about this.

Mark


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