diff options
Diffstat (limited to 'source/Plugins/Process/Linux/NativeThreadLinux.h')
| -rw-r--r-- | source/Plugins/Process/Linux/NativeThreadLinux.h | 28 | 
1 files changed, 24 insertions, 4 deletions
diff --git a/source/Plugins/Process/Linux/NativeThreadLinux.h b/source/Plugins/Process/Linux/NativeThreadLinux.h index bf6b00a78cfd..f1b6a6e44782 100644 --- a/source/Plugins/Process/Linux/NativeThreadLinux.h +++ b/source/Plugins/Process/Linux/NativeThreadLinux.h @@ -13,6 +13,8 @@  #include "lldb/lldb-private-forward.h"  #include "lldb/Host/common/NativeThreadProtocol.h" +#include <sched.h> +  #include <map>  #include <memory>  #include <string> @@ -54,11 +56,16 @@ namespace process_linux {          // ---------------------------------------------------------------------          // Interface for friend classes          // --------------------------------------------------------------------- -        void -        SetRunning (); -        void -        SetStepping (); +        /// Resumes the thread.  If @p signo is anything but +        /// LLDB_INVALID_SIGNAL_NUMBER, deliver that signal to the thread. +        Error +        Resume(uint32_t signo); + +        /// Single steps the thread.  If @p signo is anything but +        /// LLDB_INVALID_SIGNAL_NUMBER, deliver that signal to the thread. +        Error +        SingleStep(uint32_t signo);          void          SetStoppedBySignal(uint32_t signo, const siginfo_t *info = nullptr); @@ -102,6 +109,18 @@ namespace process_linux {          void          MaybeLogStateChange (lldb::StateType new_state); +        NativeProcessLinux & +        GetProcess(); + +        void +        SetStopped(); + +        inline void +        MaybePrepareSingleStepWorkaround(); + +        inline void +        MaybeCleanupSingleStepWorkaround(); +          // ---------------------------------------------------------------------          // Member Variables          // --------------------------------------------------------------------- @@ -111,6 +130,7 @@ namespace process_linux {          std::string m_stop_description;          using WatchpointIndexMap = std::map<lldb::addr_t, uint32_t>;          WatchpointIndexMap m_watchpoint_index_map; +        cpu_set_t m_original_cpu_set; // For single-step workaround.      };      typedef std::shared_ptr<NativeThreadLinux> NativeThreadLinuxSP;  | 
