aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2005-10-10 18:42:11 +0000
committerH.J. Lu <hjl.tools@gmail.com>2005-10-10 18:42:11 +0000
commit1949de15f099f04be574805cc9506f08146cad67 (patch)
tree1ff8362ab790136fcefffa99b35584d0e48f466e
parentfa4ec3f59fa0afbc6c674951738685ca4fa0000b (diff)
downloadgdb-1949de15f099f04be574805cc9506f08146cad67.zip
gdb-1949de15f099f04be574805cc9506f08146cad67.tar.gz
gdb-1949de15f099f04be574805cc9506f08146cad67.tar.bz2
2005-10-10 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/1436 * readelf.c (ABSADDR): New. (dump_ia64_unwind): Use ABSADDR to get the unwind info address.
-rw-r--r--binutils/ChangeLog6
-rw-r--r--binutils/readelf.c7
2 files changed, 12 insertions, 1 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 47a74c2..fd20dd3 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,9 @@
+2005-10-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/1436
+ * readelf.c (ABSADDR): New.
+ (dump_ia64_unwind): Use ABSADDR to get the unwind info address.
+
2005-10-10 Thomas Weidenmueller <w3seek@reactos.com>
* resbin.c (res_to_bin_accelerator): Place the terminating NUL at
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 04e69d6..d076a65 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -4580,6 +4580,11 @@ struct absaddr
bfd_vma offset;
};
+#define ABSADDR(a) \
+ ((a).section \
+ ? section_headers [(a).section].sh_addr + (a).offset \
+ : (a).offset)
+
struct ia64_unw_aux_info
{
struct ia64_unw_table_entry
@@ -4672,7 +4677,7 @@ dump_ia64_unwind (struct ia64_unw_aux_info *aux)
printf ("], info at +0x%lx\n",
(unsigned long) (tp->info.offset - aux->seg_base));
- head = aux->info + (tp->info.offset - aux->info_addr);
+ head = aux->info + (ABSADDR (tp->info) - aux->info_addr);
stamp = byte_get ((unsigned char *) head, sizeof (stamp));
printf (" v%u, flags=0x%lx (%s%s), len=%lu bytes\n",