diff options
Diffstat (limited to 'gdb/windows-tdep.h')
-rw-r--r-- | gdb/windows-tdep.h | 16 |
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 */ |