2004-05-04 Bryce McKinlay * dwarf2read.c (dwarf2_symbol_mark_computed): Use ANOFFSET to adjust baton's base_address for shared libraries. Index: dwarf2read.c =================================================================== RCS file: /cvs/src/src/gdb/dwarf2read.c,v retrieving revision 1.150 diff -u -r1.150 dwarf2read.c --- dwarf2read.c 4 May 2004 00:11:25 -0000 1.150 +++ dwarf2read.c 5 May 2004 00:41:00 -0000 @@ -8662,6 +8662,7 @@ if (attr->form == DW_FORM_data4 || attr->form == DW_FORM_data8) { struct dwarf2_loclist_baton *baton; + CORE_ADDR base_offset; baton = obstack_alloc (&cu->objfile->objfile_obstack, sizeof (struct dwarf2_loclist_baton)); @@ -8671,7 +8672,10 @@ don't run off the edge of the section. */ baton->size = dwarf2_per_objfile->loc_size - DW_UNSND (attr); baton->data = dwarf2_per_objfile->loc_buffer + DW_UNSND (attr); - baton->base_address = cu->header.base_address; + /* Set base_address, adjusting for shared libraries. */ + base_offset = ANOFFSET (cu->objfile->section_offsets, + SECT_OFF_TEXT (cu->objfile)); + baton->base_address = cu->header.base_address + base_offset; if (cu->header.base_known == 0) complaint (&symfile_complaints, "Location list used without specifying the CU base address.");