This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] import drow dbxread.c fix to branch
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: Michael Elizabeth Chastain <mec at shout dot net>,Andrew Cagney <ac131313 at cygnus dot com>
- Cc: gdb-patches at sources dot redhat dot com
- Date: Thu, 4 Apr 2002 01:01:12 -0500
- Subject: Re: [RFA] import drow dbxread.c fix to branch
- References: <200204040536.g345a6t30923@duracef.shout.net>
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;