aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2004-05-01 10:55:19 +0000
committerMark Kettenis <kettenis@gnu.org>2004-05-01 10:55:19 +0000
commit03ac2a74f949f0ff3796e2d0a083ac6d88e16c20 (patch)
tree3a6932d3fa8564f63aba6aeaacc20e3cd04d5b44
parent50ea776902f39c4966e4f88f14ee11da80d0cfef (diff)
downloadgdb-03ac2a74f949f0ff3796e2d0a083ac6d88e16c20.zip
gdb-03ac2a74f949f0ff3796e2d0a083ac6d88e16c20.tar.gz
gdb-03ac2a74f949f0ff3796e2d0a083ac6d88e16c20.tar.bz2
* dwarf2-frame.c (read_encoded_value): Handle DW_EH_PE_funcrel
encondings. Fixes PR gdb/1628.
-rw-r--r--gdb/ChangeLog3
-rw-r--r--gdb/dwarf2-frame.c8
2 files changed, 11 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 937b6f3..dafa5bd 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,8 @@
2004-05-01 Mark Kettenis <kettenis@gnu.org>
+ * dwarf2-frame.c (read_encoded_value): Handle DW_EH_PE_funcrel
+ encondings. Fixes PR gdb/1628.
+
* dwarf2-frame.c (execute_cfa_program): Complain if we encounter a
DW_CFA_restore state without a matching DW_CFA_remember_state
instead of aborting. Fixes PR backtrace/1589.
diff --git a/gdb/dwarf2-frame.c b/gdb/dwarf2-frame.c
index fafc8fc..fccb94d 100644
--- a/gdb/dwarf2-frame.c
+++ b/gdb/dwarf2-frame.c
@@ -1088,6 +1088,14 @@ read_encoded_value (struct comp_unit *unit, unsigned char encoding,
case DW_EH_PE_textrel:
base = unit->tbase;
break;
+ case DW_EH_PE_funcrel:
+ /* FIXME: kettenis/20040501: For now just pretend
+ DW_EH_PE_funcrel is equivalent to DW_EH_PE_absptr. For
+ reading the initial location of an FDE it should be treated
+ as such, and currently that's the only place where this code
+ is used. */
+ base = 0;
+ break;
case DW_EH_PE_aligned:
base = 0;
offset = buf - unit->dwarf_frame_buffer;