aboutsummaryrefslogtreecommitdiff
path: root/gdb/windows-tdep.h
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/windows-tdep.h')
-rw-r--r--gdb/windows-tdep.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/gdb/windows-tdep.h b/gdb/windows-tdep.h
index abb2533..4427b25 100644
--- a/gdb/windows-tdep.h
+++ b/gdb/windows-tdep.h
@@ -60,8 +60,9 @@ extern bool is_linked_with_cygwin_dll (bfd *abfd);
/* Cygwin sigwapper unwinder. Unwinds signal frames over
sigbe/sigdelayed. */
-struct cygwin_sigwrapper_frame_unwind : public frame_unwind
+class cygwin_sigwrapper_frame_unwind : public frame_unwind
{
+public:
explicit cygwin_sigwrapper_frame_unwind
(gdb::array_view<const gdb::array_view<const gdb_byte>> patterns_list);
@@ -73,6 +74,19 @@ struct cygwin_sigwrapper_frame_unwind : public frame_unwind
If any pattern in the list matches, then the frame is assumed to
be a sigwrapper frame. */
gdb::array_view<const gdb::array_view<const gdb_byte>> patterns_list;
+
+ /* Calculate the frame ID of a cygwin wrapper. */
+ void this_id (const frame_info_ptr &this_frame, void **this_prologue_cache,
+ struct frame_id *id) const override;
+
+ /* Sniff the frame to tell if this unwinder should be used. */
+ int sniff (const frame_info_ptr &this_frame,
+ void **this_prologue_cache) const override;
+
+ /* Calculate the value of a given register in the previous frame. */
+ struct value *prev_register (const frame_info_ptr &this_frame,
+ void **this_cache,
+ int regnum) const override;
};
#endif /* GDB_WINDOWS_TDEP_H */