aboutsummaryrefslogtreecommitdiff
path: root/gdb/dwarf2loc.c
diff options
context:
space:
mode:
authorBryce McKinlay <mckinlay@redhat.com>2004-05-13 17:30:41 +0000
committerBryce McKinlay <mckinlay@redhat.com>2004-05-13 17:30:41 +0000
commit8edfa9268a4edf0a22389140be2007ce48167352 (patch)
tree6867825479d238a9c437412a4e908559f94f42c6 /gdb/dwarf2loc.c
parent723e0e3ddf829646a8309819b947d431dc61d763 (diff)
downloadgdb-8edfa9268a4edf0a22389140be2007ce48167352.zip
gdb-8edfa9268a4edf0a22389140be2007ce48167352.tar.gz
gdb-8edfa9268a4edf0a22389140be2007ce48167352.tar.bz2
2004-05-13 Bryce McKinlay <mckinlay@redhat.com>
* dwarf2loc.c (find_location_expression): Use ANOFFSET to adjust base_address for shared libraries.
Diffstat (limited to 'gdb/dwarf2loc.c')
-rw-r--r--gdb/dwarf2loc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c
index ef333f7..cdbeb10 100644
--- a/gdb/dwarf2loc.c
+++ b/gdb/dwarf2loc.c
@@ -53,11 +53,14 @@ static char *
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;