From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Jacobowitz To: Bryce McKinlay Cc: Jim Blandy , gdb-patches@sources.redhat.com Subject: Re: Patch: DWARF2 location lists vs. shared libraries Date: Wed, 12 May 2004 01:34:00 -0000 Message-id: <20040512013456.GA12569@nevyn.them.org> References: <40983940.3050003@redhat.com> <20040505040344.GA28793@nevyn.them.org> <409C1C42.2010908@redhat.com> X-SW-Source: 2004-05/msg00358.html On Fri, May 07, 2004 at 07:31:14PM -0400, Bryce McKinlay wrote: > How about this? > 2004-05-07 Bryce McKinlay > > * dwarf2loc.c (find_location_expression): Use ANOFFSET to adjust > base_address for shared libraries. It looks right to me. Jim? > > Index: dwarf2loc.c > =================================================================== > RCS file: /cvs/src/src/gdb/dwarf2loc.c,v > retrieving revision 1.14 > diff -u -r1.14 dwarf2loc.c > --- dwarf2loc.c 26 Jan 2004 20:36:31 -0000 1.14 > +++ dwarf2loc.c 7 May 2004 23:22:16 -0000 > @@ -53,11 +53,14 @@ > find_location_expression (struct dwarf2_loclist_baton *baton, > size_t *locexpr_length, CORE_ADDR pc) > { > - CORE_ADDR base_address = baton->base_address; > CORE_ADDR low, high; > char *loc_ptr, *buf_end; > unsigned int addr_size = TARGET_ADDR_BIT / TARGET_CHAR_BIT, length; > CORE_ADDR base_mask = ~(~(CORE_ADDR)1 << (addr_size * 8 - 1)); > + /* Adjust base_address for relocatable objects. */ > + CORE_ADDR base_offset = ANOFFSET (baton->objfile->section_offsets, > + SECT_OFF_TEXT (baton->objfile)); > + CORE_ADDR base_address = baton->base_address + base_offset; > > loc_ptr = baton->data; > buf_end = baton->data + baton->size; -- Daniel Jacobowitz