2005-01-05 H.J. Lu <hongjiu.lu@intel.com>
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 5 Jan 2005 16:15:47 +0000 (16:15 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 5 Jan 2005 16:15:47 +0000 (16:15 +0000)
commitb38c7015604c871a0abf44d33bfd8fc5aca8d8e8
tree2f6f7c1f6220beadf32a568cb158c5f723b6b154
parent98d87ee7098974945b6623bd45dbd18f02e61e57
2005-01-05  H.J. Lu  <hongjiu.lu@intel.com>

* readelf.c (have_frame_base): New.
(need_base_address): Likewise.
(saved_base_address): Likewise.
(decode_location_expression): Return 1 if DW_AT_frame_base is
needed.
(debug_info): Add base_address and a have_frame_base pointer.
(read_and_display_attr_value): Replace saved_DW_AT_low_pc with
saved_base_address. Record base address. Set have_frame_base.
Record if a location list has DW_AT_frame_base. Display if a
location expression has no DW_AT_frame_base but needs one. Set
saved_base_address only if needed.
(process_debug_info): Clear have_frame_base, saved_base_address
and set need_base_address.
(display_debug_loc): Display if a location expression has no
DW_AT_frame_base but needs one. Display if start >= end. Don't
adjust for section address. Properly handle base address.
(process_object): Free the have_frame_base pointer in
debug_info.
binutils/ChangeLog
binutils/readelf.c