diff options
author | Jim Ingham <jingham@apple.com> | 2011-01-25 05:26:48 +0000 |
---|---|---|
committer | Jim Ingham <jingham@apple.com> | 2011-01-25 05:26:48 +0000 |
commit | b1e11121240bd9189572c8ef39d5e490ded33542 (patch) | |
tree | fa16ca84f1a5f08c2d4f5bded184dd3c42036200 /lldb/tools/debugserver/source/MacOSX/MachThread.h | |
parent | 99d686d728e55fb79c550c8f8af08e62617d8557 (diff) | |
download | bcm5719-llvm-b1e11121240bd9189572c8ef39d5e490ded33542.tar.gz bcm5719-llvm-b1e11121240bd9189572c8ef39d5e490ded33542.zip |
When we are stepping a thread, force it to resume ALL the way to 0. And of course, when we stop
if we undid some user provided suspends, we need to re-do the suspends.
llvm-svn: 124178
Diffstat (limited to 'lldb/tools/debugserver/source/MacOSX/MachThread.h')
-rw-r--r-- | lldb/tools/debugserver/source/MacOSX/MachThread.h | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/lldb/tools/debugserver/source/MacOSX/MachThread.h b/lldb/tools/debugserver/source/MacOSX/MachThread.h index e7e18fe262c..7a39885bb1b 100644 --- a/lldb/tools/debugserver/source/MacOSX/MachThread.h +++ b/lldb/tools/debugserver/source/MacOSX/MachThread.h @@ -49,11 +49,6 @@ public: uint32_t SequenceID() const { return m_seq_id; } static bool ThreadIDIsValid(thread_t thread); - uint32_t Resume(); - uint32_t Suspend(); - uint32_t SuspendCount() const { return m_suspendCount; } - bool RestoreSuspendCount(); - bool GetRegisterState(int flavor, bool force); bool SetRegisterState(int flavor); uint64_t GetPC(uint64_t failValue = INVALID_NUB_ADDRESS); // Get program counter @@ -92,8 +87,6 @@ public: } bool IsUserReady(); - struct thread_basic_info * - GetBasicInfo (); const char * GetBasicInfoAsString () const; const char * GetName (); @@ -104,6 +97,13 @@ public: } protected: + int32_t Resume(); + int32_t ForceResume(); + int32_t Suspend(); +// uint32_t SuspendCount() const { return m_suspendCount; } + bool RestoreSuspendCount(); + struct thread_basic_info * + GetBasicInfo (bool force); static bool GetBasicInfo(thread_t threadID, struct thread_basic_info *basic_info); bool @@ -118,8 +118,9 @@ protected: nub_state_t m_state; // The state of our process PThreadMutex m_state_mutex; // Multithreaded protection for m_state nub_break_t m_breakID; // Breakpoint that this thread is (stopped)/was(running) at (NULL for none) - struct thread_basic_info m_basicInfo; // Basic information for a thread used to see if a thread is valid - uint32_t m_suspendCount; // The current suspend count + struct thread_basic_info m_basic_info; // Basic information for a thread used to see if a thread is valid + bool m_basic_info_valid; + uint32_t m_suspend_count; // The current suspend count MachException::Data m_stop_exception; // The best exception that describes why this thread is stopped std::auto_ptr<DNBArchProtocol> m_arch_ap; // Arch specific information for register state and more const DNBRegisterSetInfo *const m_reg_sets; // Register set information for this thread @@ -128,6 +129,7 @@ protected: thread_identifier_info_data_t m_ident_info; struct proc_threadinfo m_proc_threadinfo; std::string m_dispatch_queue_name; + #endif }; |