This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [patch] Fix to processing end of function stab in dbxread.c
On Thu, Jul 11, 2002 at 02:10:49PM -0700, Jim Ingham wrote:
> >I judge from your example that MacOSX has resolved addresses attached
> >to N_SLINE stabs, but not in ending N_FUN stabs? GDB assumes that
> >function_start_offset applies to both of them equally (and it will be
> >zero if we expect both to be resolved). On GNU/Linux both N_SLINE and
> >final N_FUN have offsets within the function. I suspect that on some
> >Solaris variant N_SLINE and final N_FUN will both have resolved values.
> >In that case using last_function_start + valu will put us well outside
> >of the actual function, causing mayhem.
>
> That's right. MacOS X's linker does fix up the SLINE stabs, but it
> does what stabs.texi says to do with the end of function stabs.
>
> It would suprise me if there were a Solaris compile/linker that does
> otherwise with the end of FUN stab. After all, it seems like the
> Solaris tools go out of their way to avoid having STABS that the linker
> has to fix up. Also, the comment in stabs.texi says "Recent versions
> of GCC will mark the end of the function with an N_FUN symbol..."
> Sounds like the Solaris compilers may not have this end of function FUN
> stab at all.
>
> Would somebody with access to a Solaris box with acc on it compile a
> simple program with "-g" and see if it has this stab, and if so what
> its value is?
>
> I bet the code I suggested will work fine.
ACC is HP/UX, isn't it? The Sun compiler is Sun Workshop CC. In any
case, it appears that Solaris does not mark the end of functions with
stabs. I'm satisfied; sorry for the runaround.
You might want to repost the patch not-mangled this time; since your
mail client persistently wraps things attaching it might be simplest.
--
Daniel Jacobowitz Carnegie Mellon University
MontaVista Software Debian GNU/Linux Developer