aboutsummaryrefslogtreecommitdiff
path: root/gdb/dwarf2-frame.h
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2006-05-09 21:14:17 +0000
committerAndreas Schwab <schwab@linux-m68k.org>2006-05-09 21:14:17 +0000
commit4bf8967cb234b25f2732ecb075344fa17ce05f75 (patch)
treec67df90c7cc4fe5f866adee5ebcb5f941e21a61c /gdb/dwarf2-frame.h
parent43cc0762b25b15d4e39fe23e68fd719f03108e98 (diff)
downloadgdb-4bf8967cb234b25f2732ecb075344fa17ce05f75.zip
gdb-4bf8967cb234b25f2732ecb075344fa17ce05f75.tar.gz
gdb-4bf8967cb234b25f2732ecb075344fa17ce05f75.tar.bz2
* dwarf2-frame.c (struct dwarf2_fde): Add eh_frame_p.
(execute_cfa_program): Add parameter eh_frame_p. Call dwarf2_frame_eh_frame_regnum when true. (dwarf2_frame_cache): Pass eh_frame_p from fde to execute_cfa_program. (decode_frame_entry_1): Call dwarf2_frame_eh_frame_regnum when processing .eh_frame. Copy eh_frame_p to the new fde. (struct dwarf2_frame_ops): Add eh_frame_regnum. (dwarf2_frame_set_eh_frame_regnum): Define. (dwarf2_frame_eh_frame_regnum): Define. * dwarf2-frame.h (dwarf2_frame_set_eh_frame_regnum): Declare. (dwarf2_frame_eh_frame_regnum): Declare.
Diffstat (limited to 'gdb/dwarf2-frame.h')
-rw-r--r--gdb/dwarf2-frame.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/gdb/dwarf2-frame.h b/gdb/dwarf2-frame.h
index a4ad586..da9fe47 100644
--- a/gdb/dwarf2-frame.h
+++ b/gdb/dwarf2-frame.h
@@ -90,6 +90,19 @@ extern void
int (*signal_frame_p) (struct gdbarch *,
struct frame_info *));
+/* Set the architecture-specific mapping of .eh_frame register numbers to
+ DWARF register numbers. */
+
+extern void
+ dwarf2_frame_set_eh_frame_regnum (struct gdbarch *gdbarch,
+ int (*eh_frame_regnum) (struct gdbarch *,
+ int));
+
+/* Translate a .eh_frame register to DWARF register. */
+
+extern int
+ dwarf2_frame_eh_frame_regnum (struct gdbarch *gdbarch, int regnum);
+
/* Return the frame unwind methods for the function that contains PC,
or NULL if it can't be handled by DWARF CFI frame unwinder. */