aboutsummaryrefslogtreecommitdiff
path: root/gdb/frame-unwind.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/frame-unwind.h')
-rw-r--r--gdb/frame-unwind.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/gdb/frame-unwind.h b/gdb/frame-unwind.h
index e449766..5b04a1c 100644
--- a/gdb/frame-unwind.h
+++ b/gdb/frame-unwind.h
@@ -51,6 +51,9 @@ typedef int (frame_sniffer_ftype) (const struct frame_unwind *self,
struct frame_info *this_frame,
void **this_prologue_cache);
+typedef enum unwind_stop_reason (frame_unwind_stop_reason_ftype)
+ (struct frame_info *this_frame, void **this_prologue_cache);
+
/* A default frame sniffer which always accepts the frame. Used by
fallback prologue unwinders. */
@@ -58,6 +61,13 @@ int default_frame_sniffer (const struct frame_unwind *self,
struct frame_info *this_frame,
void **this_prologue_cache);
+/* A default stop_reason callback which always claims the frame is
+ unwindable. */
+
+enum unwind_stop_reason
+ default_frame_unwind_stop_reason (struct frame_info *this_frame,
+ void **this_cache);
+
/* Assuming the frame chain: (outer) prev <-> this <-> next (inner);
use THIS frame, and through it the NEXT frame's register unwind
method, to determine the frame ID of THIS frame.
@@ -136,6 +146,7 @@ struct frame_unwind
enum frame_type type;
/* Should an attribute indicating the frame's address-in-block go
here? */
+ frame_unwind_stop_reason_ftype *stop_reason;
frame_this_id_ftype *this_id;
frame_prev_register_ftype *prev_register;
const struct frame_data *unwind_data;