diff options
Diffstat (limited to 'lldb/source/Plugins/Process/Linux')
| -rw-r--r-- | lldb/source/Plugins/Process/Linux/LinuxThread.cpp | 41 | ||||
| -rw-r--r-- | lldb/source/Plugins/Process/Linux/LinuxThread.h | 5 | ||||
| -rw-r--r-- | lldb/source/Plugins/Process/Linux/ProcessLinux.cpp | 125 | ||||
| -rw-r--r-- | lldb/source/Plugins/Process/Linux/ProcessLinux.h | 6 |
4 files changed, 1 insertions, 176 deletions
diff --git a/lldb/source/Plugins/Process/Linux/LinuxThread.cpp b/lldb/source/Plugins/Process/Linux/LinuxThread.cpp index 8b6d25c60df..d69f96f1424 100644 --- a/lldb/source/Plugins/Process/Linux/LinuxThread.cpp +++ b/lldb/source/Plugins/Process/Linux/LinuxThread.cpp @@ -12,10 +12,6 @@ // Other libraries and framework includes // Project includes #include "LinuxThread.h" -#include "lldb/Core/State.h" -#include "ProcessPOSIX.h" -#include "ProcessMonitor.h" -#include "ProcessPOSIXLog.h" using namespace lldb; using namespace lldb_private; @@ -35,43 +31,6 @@ LinuxThread::~LinuxThread() //------------------------------------------------------------------------------ // ProcessInterface protocol. -bool -LinuxThread::Resume() -{ - lldb::StateType resume_state = GetResumeState(); - ProcessMonitor &monitor = GetMonitor(); - bool status; - - Log *log (ProcessPOSIXLog::GetLogIfAllCategoriesSet (POSIX_LOG_THREAD)); - if (log) - log->Printf ("POSIXThread::%s (), resume_state = %s", __FUNCTION__, - StateAsCString(resume_state)); - - switch (resume_state) - { - default: - assert(false && "Unexpected state for resume!"); - status = false; - break; - - case lldb::eStateRunning: - SetState(resume_state); - status = monitor.Resume(GetID(), GetResumeSignal()); - break; - - case lldb::eStateStepping: - SetState(resume_state); - status = monitor.SingleStep(GetID(), GetResumeSignal()); - break; - case lldb::eStateStopped: - case lldb::eStateSuspended: - status = true; - break; - } - - return status; -} - void LinuxThread::RefreshStateAfterStop() { diff --git a/lldb/source/Plugins/Process/Linux/LinuxThread.h b/lldb/source/Plugins/Process/Linux/LinuxThread.h index f20b58993e6..7d253aa98eb 100644 --- a/lldb/source/Plugins/Process/Linux/LinuxThread.h +++ b/lldb/source/Plugins/Process/Linux/LinuxThread.h @@ -31,10 +31,7 @@ public: //-------------------------------------------------------------------------- // LinuxThread internal API. - // POSIXThread overrides - virtual bool - Resume(); - + // POSIXThread override virtual void RefreshStateAfterStop(); diff --git a/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp b/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp index efcb02a70f2..dae14d1c44c 100644 --- a/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp +++ b/lldb/source/Plugins/Process/Linux/ProcessLinux.cpp @@ -166,31 +166,6 @@ ProcessLinux::DoDetach(bool keep_stopped) // ProcessPOSIX override -Error -ProcessLinux::DoResume() -{ - StateType state = GetPrivateState(); - - assert(state == eStateStopped); - - SetPrivateState(eStateRunning); - - bool did_resume = false; - - Mutex::Locker lock(m_thread_list.GetMutex()); - - uint32_t thread_count = m_thread_list.GetSize(false); - for (uint32_t i = 0; i < thread_count; ++i) - { - LinuxThread *thread = static_cast<LinuxThread*>( - m_thread_list.GetThreadAtIndex(i, false).get()); - did_resume = thread->Resume() || did_resume; - } - assert(did_resume && "Process resume failed!"); - - return Error(); -} - void ProcessLinux::StopAllThreads(lldb::tid_t stop_tid) { @@ -246,103 +221,3 @@ ProcessLinux::CanDebug(Target &target, bool plugin_specified_by_name) return ProcessPOSIX::CanDebug(target, plugin_specified_by_name); } -void -ProcessLinux::SendMessage(const ProcessMessage &message) -{ - Mutex::Locker lock(m_message_mutex); - - Mutex::Locker thread_lock(m_thread_list.GetMutex()); - - POSIXThread *thread = static_cast<POSIXThread*>( - m_thread_list.FindThreadByID(message.GetTID(), false).get()); - - switch (message.GetKind()) - { - case ProcessMessage::eInvalidMessage: - return; - - case ProcessMessage::eAttachMessage: - SetPrivateState(eStateStopped); - return; - - case ProcessMessage::eLimboMessage: - assert(thread); - thread->SetState(eStateStopped); - if (message.GetTID() == GetID()) - { - m_exit_status = message.GetExitStatus(); - if (m_exit_now) - { - SetPrivateState(eStateExited); - m_monitor->Detach(GetID()); - } - else - { - StopAllThreads(message.GetTID()); - SetPrivateState(eStateStopped); - } - } - else - { - StopAllThreads(message.GetTID()); - SetPrivateState(eStateStopped); - } - break; - - case ProcessMessage::eExitMessage: - assert(thread); - thread->SetState(eStateExited); - // FIXME: I'm not sure we need to do this. - if (message.GetTID() == GetID()) - { - m_exit_status = message.GetExitStatus(); - SetExitStatus(m_exit_status, NULL); - } - else if (!IsAThreadRunning()) - SetPrivateState(eStateStopped); - break; - - case ProcessMessage::eSignalMessage: - case ProcessMessage::eSignalDeliveredMessage: - if (message.GetSignal() == SIGSTOP && - AddThreadForInitialStopIfNeeded(message.GetTID())) - return; - // Intentional fall-through - - case ProcessMessage::eBreakpointMessage: - case ProcessMessage::eTraceMessage: - case ProcessMessage::eWatchpointMessage: - case ProcessMessage::eCrashMessage: - assert(thread); - thread->SetState(eStateStopped); - StopAllThreads(message.GetTID()); - break; - - case ProcessMessage::eNewThreadMessage: - { - lldb::tid_t new_tid = message.GetChildTID(); - if (WaitingForInitialStop(new_tid)) - { - m_monitor->WaitForInitialTIDStop(new_tid); - } - assert(thread); - thread->SetState(eStateStopped); - StopAllThreads(message.GetTID()); - SetPrivateState(eStateStopped); - break; - } - - case ProcessMessage::eExecMessage: - { - assert(thread); - thread->SetState(eStateStopped); - StopAllThreads(message.GetTID()); - SetPrivateState(eStateStopped); - break; - } - } - - - m_message_queue.push(message); -} - diff --git a/lldb/source/Plugins/Process/Linux/ProcessLinux.h b/lldb/source/Plugins/Process/Linux/ProcessLinux.h index 9be22f75178..8ccd12576f8 100644 --- a/lldb/source/Plugins/Process/Linux/ProcessLinux.h +++ b/lldb/source/Plugins/Process/Linux/ProcessLinux.h @@ -60,9 +60,6 @@ public: virtual bool UpdateThreadList(lldb_private::ThreadList &old_thread_list, lldb_private::ThreadList &new_thread_list); - virtual lldb_private::Error - DoResume(); - //------------------------------------------------------------------ // PluginInterface protocol //------------------------------------------------------------------ @@ -104,9 +101,6 @@ public: virtual POSIXThread * CreateNewPOSIXThread(lldb_private::Process &process, lldb::tid_t tid); - virtual void - SendMessage(const ProcessMessage &message); - private: /// Linux-specific signal set. |

