summaryrefslogtreecommitdiffstats
path: root/lldb/tools/debugserver/source/MacOSX/MachThread.h
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2011-01-25 05:26:48 +0000
committerJim Ingham <jingham@apple.com>2011-01-25 05:26:48 +0000
commitb1e11121240bd9189572c8ef39d5e490ded33542 (patch)
treefa16ca84f1a5f08c2d4f5bded184dd3c42036200 /lldb/tools/debugserver/source/MacOSX/MachThread.h
parent99d686d728e55fb79c550c8f8af08e62617d8557 (diff)
downloadbcm5719-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.h20
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
};
OpenPOWER on IntegriCloud