This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
DW_CFA_def_cfa_offset_sf bug? (Re: Does gdb 5.2 support gcc 3.1.1 on Linux/mips?)
- From: "H . J . Lu" <hjl at lucon dot org>
- To: GDB <gdb at sources dot redhat dot com>, binutils at sources dot redhat dot com
- Date: Mon, 3 Jun 2002 08:55:06 -0700
- Subject: DW_CFA_def_cfa_offset_sf bug? (Re: Does gdb 5.2 support gcc 3.1.1 on Linux/mips?)
- References: <20020602143627.A10506@lucon.org> <20020603010003.GA16363@branoic.them.org> <20020602194326.A14976@lucon.org> <20020603050101.GA18906@branoic.them.org> <20020602220534.B17122@lucon.org> <20020603050906.GA19164@branoic.them.org> <20020602224240.A17723@lucon.org> <20020602230331.A18107@lucon.org> <20020602231016.A18236@lucon.org> <20020603141808.GA24114@branoic.them.org>
On Mon, Jun 03, 2002 at 10:18:10AM -0400, Daniel Jacobowitz wrote:
> On Sun, Jun 02, 2002 at 11:10:16PM -0700, H . J . Lu wrote:
> > On Sun, Jun 02, 2002 at 11:03:31PM -0700, H . J . Lu wrote:
> > >
> > > DW_CFA_17 is DW_CFA_offset_extended_sf, which was added to gcc on
> > > 2002-01-30. I have verifed that gcc 3.1.1 does generate it for mips.
> > > It looks like we have at least 2 bugs. First, readelf doesn't handle
> > > DW_CFA_offset_extended_sf and maybe other DAWRF debug info generated
> > > by gcc 3.1.1. Secondly, gdb 5.2 doesn't work with gcc 3.1.1 for
> > > Linux/mips.
> >
> > dwarf2cfi.c in gdb 5.2 seems to support DW_CFA_offset_extended_sf. But
> > that file is not used anywhere, at least not for Linux/x86 nor
> > Linux/mips. Did I miss something? Shouldn't we fix gdb 5.2 and
> > binutils for gcc 3.1.1?
>
> GDB doesn't need the CFA info on MIPS (although I'll try soon to let
> GDB use it). Is that really what's making GDB choke? Have you looked
> at Jakub's suggestion about gas and -gdwarf-2?
>
It has nothing to do with gas and -gdwarf-2. I used "gcc -c". I am
trying to fix readelf first. While working on DW_CFA_def_cfa_offset_sf,
I found:
case DW_CFA_def_cfa_offset_sf:
uoffset = read_uleb128 (objfile->obfd, &insn_ptr);
^^^^^^^^^^^^
fs->cfa_offset = uoffset;
/* cfa_how deliberately not set. */
break;
in dwarf2cfi.c in gdb 5.2. Shouldn't that be
case DW_CFA_def_cfa_offset_sf:
offset = read_sleb128 (objfile->obfd, &insn_ptr);
^^^^^^^^^^^^
fs->cfa_offset = offset;
/* cfa_how deliberately not set. */
break;
H.J.