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: Elena Zannoni <ezannoni at redhat dot com>
- To: Daniel Jacobowitz <drow at mvista dot com>
- Cc: Michael Elizabeth Chastain <mec at shout dot net>, Andrew Cagney <ac131313 at cygnus dot com>, gdb-patches at sources dot redhat dot com
- Date: Thu, 4 Apr 2002 14:27:05 -0500
- Subject: Re: [RFA] import drow dbxread.c fix to branch
- References: <200204040536.g345a6t30923@duracef.shout.net><20020404010112.A13460@nevyn.them.org>
Daniel Jacobowitz writes:
> 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?
>
Take a look at the way gdbtk does it, in
gdbtk/generic/gdbtk-cmd.c:gdb_disassemble_driver().
Can we adopt that solution?
(I really can't wait until we can get rid of this duplication/triplication of
disassembly code. I think I'll start cleaning some things up).
Elena
> --
> 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;