[Lldb-commits] [PATCH] D68762: [LLDB] Fix when building with strict LLVM assertion checking on FreeBSD

David CARLIER via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Oct 9 23:23:52 PDT 2019


devnexen updated this revision to Diff 224256.

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D68762/new/

https://reviews.llvm.org/D68762

Files:
  lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp


Index: lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
===================================================================
--- lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
+++ lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp
@@ -730,10 +730,12 @@
   }
 
   // Finally, start monitoring the child process for change in state.
+  if (m_monitor_thread)
+    m_monitor_thread->Reset();
   m_monitor_thread = Host::StartMonitoringChildProcess(
       std::bind(&ProcessMonitor::MonitorCallback, this, _1, _2, _3, _4),
       GetPID(), true);
-  if (!m_monitor_thread->IsJoinable()) {
+  if (m_monitor_thread && !m_monitor_thread->IsJoinable()) {
     error.SetErrorToGenericError();
     error.SetErrorString("Process launch failed.");
     return;
@@ -771,7 +773,7 @@
   m_monitor_thread = Host::StartMonitoringChildProcess(
       std::bind(&ProcessMonitor::MonitorCallback, this, _1, _2, _3, _4),
       GetPID(), true);
-  if (!m_monitor_thread->IsJoinable()) {
+  if (m_monitor_thread && !m_monitor_thread->IsJoinable()) {
     error.SetErrorToGenericError();
     error.SetErrorString("Process attach failed.");
     return;
@@ -784,9 +786,11 @@
 void ProcessMonitor::StartLaunchOpThread(LaunchArgs *args, Status &error) {
   static const char *g_thread_name = "lldb.process.freebsd.operation";
 
-  if (m_operation_thread->IsJoinable())
+  if (m_operation_thread && m_operation_thread->IsJoinable())
     return;
 
+  if (m_operation_thread)
+    m_operation_thread->Reset();
   m_operation_thread =
       ThreadLauncher::LaunchThread(g_thread_name, LaunchOpThread, args);
   if (!m_operation_thread)
@@ -1412,7 +1416,7 @@
 bool ProcessMonitor::WaitForInitialTIDStop(lldb::tid_t tid) { return true; }
 
 void ProcessMonitor::StopOpThread() {
-  if (!m_operation_thread->IsJoinable())
+  if (m_operation && !m_operation_thread->IsJoinable())
     return;
 
   m_operation_thread->Cancel();


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D68762.224256.patch
Type: text/x-patch
Size: 1915 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20191010/67371a18/attachment.bin>


More information about the lldb-commits mailing list