aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2004-05-13 14:41:18 +0000
committerNick Clifton <nickc@redhat.com>2004-05-13 14:41:18 +0000
commit0da76f83eb29135ae1bd52ba5962721fb1d0c6fc (patch)
tree216775d9b34d02cfc91fa714163ab9703a49577f /binutils
parent4b363073298671c9a2a096d2ba70dd7586315c4c (diff)
downloadgdb-0da76f83eb29135ae1bd52ba5962721fb1d0c6fc.zip
gdb-0da76f83eb29135ae1bd52ba5962721fb1d0c6fc.tar.gz
gdb-0da76f83eb29135ae1bd52ba5962721fb1d0c6fc.tar.bz2
Handle dwarf3 format CIE entries.
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog5
-rw-r--r--binutils/readelf.c29
2 files changed, 30 insertions, 4 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 0dec4fe..0cbdf4b 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -1,3 +1,8 @@
+2004-05-13 Paul Brook <paul@codesourcery.com>
+
+ * readelf.c (display_debug_frames): Handle dwarf3 format CIE
+ entries.
+
2004-05-13 Nick Clifton <nickc@redhat.com>
* po/fr.po: Updated French translation.
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 1c4e57d..569c7f2 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -1,5 +1,5 @@
/* readelf.c -- display contents of an ELF format file
- Copyright 1998, 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+ Copyright 1998, 1999, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
Originally developed by Eric Youngdale <eric@andante.jic.com>
Modifications by Nick Clifton <nickc@redhat.com>
@@ -8968,7 +8968,14 @@ display_debug_frames (Elf_Internal_Shdr *section,
{
fc->code_factor = LEB ();
fc->data_factor = SLEB ();
- fc->ra = byte_get (start, 1); start += 1;
+ if (version == 1)
+ {
+ fc->ra = GET (1);
+ }
+ else
+ {
+ fc->ra = LEB ();
+ }
augmentation_data_len = LEB ();
augmentation_data = start;
start += augmentation_data_len;
@@ -8978,13 +8985,27 @@ display_debug_frames (Elf_Internal_Shdr *section,
start += addr_size;
fc->code_factor = LEB ();
fc->data_factor = SLEB ();
- fc->ra = byte_get (start, 1); start += 1;
+ if (version == 1)
+ {
+ fc->ra = GET (1);
+ }
+ else
+ {
+ fc->ra = LEB ();
+ }
}
else
{
fc->code_factor = LEB ();
fc->data_factor = SLEB ();
- fc->ra = byte_get (start, 1); start += 1;
+ if (version == 1)
+ {
+ fc->ra = GET (1);
+ }
+ else
+ {
+ fc->ra = LEB ();
+ }
}
cie = fc;