summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
diff options
context:
space:
mode:
authorEd Maste <emaste@freebsd.org>2014-02-28 17:13:39 +0000
committerEd Maste <emaste@freebsd.org>2014-02-28 17:13:39 +0000
commitc71f60f4a111630014130a16785080c95444d36e (patch)
treee44ea681b5f9d3c98f845468877eab642a9978b3 /lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
parent4c523d3f8d25e033fde4ee4b07cf8aa6a2cfdb94 (diff)
downloadbcm5719-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.cpp11
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();
OpenPOWER on IntegriCloud