aboutsummaryrefslogtreecommitdiff
path: root/gdb/dwarf2-frame.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/dwarf2-frame.h')
-rw-r--r--gdb/dwarf2-frame.h31
1 files changed, 21 insertions, 10 deletions
diff --git a/gdb/dwarf2-frame.h b/gdb/dwarf2-frame.h
index 0470cac..5ccf0c8 100644
--- a/gdb/dwarf2-frame.h
+++ b/gdb/dwarf2-frame.h
@@ -120,15 +120,26 @@ extern const struct frame_base *
CORE_ADDR dwarf2_frame_cfa (struct frame_info *this_frame);
-/* Update the agent expression EXPR with code to compute the CFA for a
- frame at PC. GDBARCH is the architecture of the function at PC.
- This function may call dwarf2_compile_expr_to_ax; DATA is passed
- through to that function if needed. */
-
-extern void dwarf2_compile_cfa_to_ax (struct agent_expr *expr,
- struct axs_value *loc,
- struct gdbarch *gdbarch,
- CORE_ADDR pc,
- struct dwarf2_per_cu_data *data);
+/* Find the CFA information for PC.
+
+ Return 1 if a register is used for the CFA, or 0 if another
+ expression is used. Throw an exception on error.
+
+ GDBARCH is the architecture to use.
+ DATA is the per-CU data.
+
+ REGNUM_OUT is an out parameter that is set to the register number.
+ OFFSET_OUT is the offset to use from this register.
+ These are only filled in when 1 is returned.
+
+ TEXT_OFFSET_OUT, CFA_START_OUT, and CFA_END_OUT describe the CFA
+ in other cases. These are only used when 0 is returned. */
+
+extern int dwarf2_fetch_cfa_info (struct gdbarch *gdbarch, CORE_ADDR pc,
+ struct dwarf2_per_cu_data *data,
+ int *regnum_out, LONGEST *offset_out,
+ CORE_ADDR *text_offset_out,
+ const gdb_byte **cfa_start_out,
+ const gdb_byte **cfa_end_out);
#endif /* dwarf2-frame.h */