diff options
author | Ed Maste <emaste@freebsd.org> | 2014-02-28 17:13:39 +0000 |
---|---|---|
committer | Ed Maste <emaste@freebsd.org> | 2014-02-28 17:13:39 +0000 |
commit | c71f60f4a111630014130a16785080c95444d36e (patch) | |
tree | e44ea681b5f9d3c98f845468877eab642a9978b3 /lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp | |
parent | 4c523d3f8d25e033fde4ee4b07cf8aa6a2cfdb94 (diff) | |
download | bcm5719-llvm-c71f60f4a111630014130a16785080c95444d36e.tar.gz bcm5719-llvm-c71f60f4a111630014130a16785080c95444d36e.zip |
Restore signal delivery to the inferior on FreeBSD
This was broken in the threaded inferior implementation for FreeBSD
(r196787) and caused FreeBSD to resume always with no signal.
llvm-svn: 202513
Diffstat (limited to 'lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp')
-rw-r--r-- | lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp b/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp index d13b9a48585..6984a0c536c 100644 --- a/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp +++ b/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp @@ -113,7 +113,8 @@ ProcessFreeBSD::EnablePluginLogging(Stream *strm, Args &command) // Constructors and destructors. ProcessFreeBSD::ProcessFreeBSD(Target& target, Listener &listener) - : ProcessPOSIX(target, listener) + : ProcessPOSIX(target, listener), + m_resume_signo(0) { } @@ -147,9 +148,6 @@ ProcessFreeBSD::DoResume() { Log *log (ProcessPOSIXLog::GetLogIfAllCategoriesSet (POSIX_LOG_PROCESS)); - // FreeBSD's ptrace() uses 0 to indicate "no signal is to be sent." - int resume_signal = 0; - SetPrivateState(eStateRunning); Mutex::Locker lock(m_thread_list.GetMutex()); @@ -174,9 +172,9 @@ ProcessFreeBSD::DoResume() if (log) log->Printf("process %lu resuming (%s)", GetID(), do_step ? "step" : "continue"); if (do_step) - m_monitor->SingleStep(GetID(), resume_signal); + m_monitor->SingleStep(GetID(), m_resume_signo); else - m_monitor->Resume(GetID(), resume_signal); + m_monitor->Resume(GetID(), m_resume_signo); return Error(); } @@ -228,6 +226,7 @@ ProcessFreeBSD::UpdateThreadList(ThreadList &old_thread_list, ThreadList &new_th Error ProcessFreeBSD::WillResume() { + m_resume_signo = 0; m_suspend_tids.clear(); m_run_tids.clear(); m_step_tids.clear(); |