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: [RFA] import drow dbxread.c fix to branch


On Wed, Apr 03, 2002 at 11:36:06PM -0600, Michael Elizabeth Chastain wrote:
> DanielJ writes:
> > Only shows on GCC 3.1, eh?  I'll try to look at it later, but I have no
> > post-3.0 toolchain installed right now.  Actually, I should
> > investigate, to make sure it isn't a 3.1 regression...
> 
> On the next spin, I'll make a special report of regressions for gcc
> 3.0.4 versus gcc-3_1-branch.  You can already look at "difference by gcc"
> in the regular report if you want to pick up a hot spot or two.
> 
> BTW my test harness now saves the whole test directory, including all
> the executable files.  In fact I'll just throw some tarball up in my
> ftp directory in case it might help someone:
> 
>   ftp://ftp.shout.net/pub/users/mec/gdb/for-pr-gdb-381.tar.gz
>   ftp://ftp.shout.net/pub/users/mec/gdb/for-pr-gdb-381-src.tar.gz

Thanks.  It does help - that was pretty easy, actually :).  I've found
the bug; mi-cmd-disassemble does not recognize '0' line numbers, and it
needs to.  I don't know why only 3.1 triggers this.  Probably a
function padding thing; the end of the previous function seems to share
a PC with the beginning of the one being listed.  Here's a patch;
Andrew, how's this look?

-- 
Daniel Jacobowitz                           Carnegie Mellon University
MontaVista Software                         Debian GNU/Linux Developer

2002-04-04  Daniel Jacobowitz  <drow@mvista.com>

	* mi-cmd-disas.c (mi_cmd_disassemble): Skip end-of-function
	markers in the line table.

Index: mi/mi-cmd-disas.c
===================================================================
RCS file: /cvs/src/src/gdb/mi/mi-cmd-disas.c,v
retrieving revision 1.12
diff -u -p -r1.12 mi-cmd-disas.c
--- mi-cmd-disas.c	2002/01/05 04:30:46	1.12
+++ mi-cmd-disas.c	2002/04/04 05:59:51
@@ -332,6 +332,10 @@ mi_cmd_disassemble (char *command, char 
 	      && le[i].pc == le[i + 1].pc)
 	    continue;		/* Ignore duplicates */
 
+	  /* Skip any end-of-function markers.  */
+	  if (le[i].line == 0)
+	    continue;
+
 	  mle[newlines].line = le[i].line;
 	  if (le[i].line > le[i + 1].line)
 	    out_of_order = 1;


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