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