[Lldb-commits] [lldb] r202513 - Restore signal delivery to the inferior on FreeBSD

Ed Maste emaste at freebsd.org
Fri Feb 28 09:13:39 PST 2014


Author: emaste
Date: Fri Feb 28 11:13:39 2014
New Revision: 202513

URL: http://llvm.org/viewvc/llvm-project?rev=202513&view=rev
Log:
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.

Modified:
    lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
    lldb/trunk/test/expression_command/call-restarts/TestCallThatRestarts.py

Modified: lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp?rev=202513&r1=202512&r2=202513&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp (original)
+++ lldb/trunk/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp Fri Feb 28 11:13:39 2014
@@ -113,7 +113,8 @@ ProcessFreeBSD::EnablePluginLogging(Stre
 // 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(ThreadL
 Error
 ProcessFreeBSD::WillResume()
 {
+    m_resume_signo = 0;
     m_suspend_tids.clear();
     m_run_tids.clear();
     m_step_tids.clear();

Modified: lldb/trunk/test/expression_command/call-restarts/TestCallThatRestarts.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/test/expression_command/call-restarts/TestCallThatRestarts.py?rev=202513&r1=202512&r2=202513&view=diff
==============================================================================
--- lldb/trunk/test/expression_command/call-restarts/TestCallThatRestarts.py (original)
+++ lldb/trunk/test/expression_command/call-restarts/TestCallThatRestarts.py Fri Feb 28 11:13:39 2014
@@ -26,7 +26,6 @@ class ExprCommandWithTimeoutsTestCase(Te
         self.buildDsym()
         self.call_function()
 
-    @skipIfFreeBSD # llvm.org/pr15278
     @dwarf_test
     def test_with_dwarf(self):
         """Test calling std::String member function."""





More information about the lldb-commits mailing list