2004-05-07 Bryce McKinlay * dwarf2loc.c (find_location_expression): Use ANOFFSET to adjust base_address for shared libraries. 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;