RFA: dbxread patch
J. Johnston
jjohnstn@redhat.com
Wed Feb 26 21:46:00 GMT 2003
Patch applied. Thanks.
Elena Zannoni wrote:
> J. Johnston writes:
> > Jim Blandy wrote:
> > > Yes, looks good.
> > >
> > > Please add a comment briefly explaining why the check is needed
> > > (hand-generated stabs that contain N_FUN stabs but no N_SLINE stabs).
> > >
> >
> > I have attached a new patch with a comment.
> >
> > > Elena suggested the change, right? She should be credited in the
> > > ChangeLog entry.
> > >
> >
> > You are correct - thanks for spotting this oversight.
> >
> > 2003-02-25 Jeff Johnston <jjohnstn@redhat.com>
> >
> > From Elena Zannoni <ezannoni@redhat.com>
> > * dbxread.c (process_one_symbol): Only record line 0 if one or more sline
> > entries have been seen for the function.
> >
> >
> > Ok now?
>
>
> Yes.
> Elena
>
>
> >
> > -- Jeff J.
> >
> > > "J. Johnston" <jjohnstn@redhat.com> writes:
> > >
> > >
> > >>The following patch fixes a problem when the stabs debug info
> > >>for a file does not contain sline entries. This happens, for
> > >>example with the glibc syscall code which is generated assembler
> > >>code. In process_one_symbol in dbxread.c, a line 0 is recorded for the
> > >>end of the function. When there are no other line numbers, we end up finding this
> > >>line 0 as our alt_symtab in symtab:find_pc_sect_line() and we end up
> > >>subtracting one resulting in line -1. This problem manifests itself
> > >>when we attempt to break at the generated glibc functions such as
> > >>kill.
> > >>
> > >>The patch changes process_one_symbol() to only record line 0 if sline info
> > >>has been found for the function.
> > >>
> > >>Ok to commit?
> > >>
> > >>-- Jeff J.
> > >>
> > >>
> > Index: dbxread.c
> > ===================================================================
> > RCS file: /cvs/src/src/gdb/dbxread.c,v
> > retrieving revision 1.43
> > diff -u -r1.43 dbxread.c
> > --- dbxread.c 20 Feb 2003 18:31:14 -0000 1.43
> > +++ dbxread.c 25 Feb 2003 23:12:07 -0000
> > @@ -2831,7 +2831,13 @@
> > break;
> > }
> >
> > - record_line (current_subfile, 0, last_function_start + valu);
> > + /* The following check is added before recording line 0 at
> > + end of function so as to handle hand-generated stabs
> > + which may have an N_FUN stabs at the end of the function, but
> > + no N_SLINE stabs. */
> > + if (sline_found_in_function)
> > + record_line (current_subfile, 0, last_function_start + valu);
> > +
> > within_function = 0;
> > new = pop_context ();
> >
More information about the Gdb-patches
mailing list