[Lldb-commits] [lldb] r365295 - Change LaunchThread interface to return an Expected for non-Apple-non-Windows

Fangrui Song via lldb-commits lldb-commits at lists.llvm.org
Mon Jul 8 00:07:05 PDT 2019


Author: maskray
Date: Mon Jul  8 00:07:05 2019
New Revision: 365295

URL: http://llvm.org/viewvc/llvm-project?rev=365295&view=rev
Log:
Change LaunchThread interface to return an Expected for non-Apple-non-Windows

Fixes Linux build errors after D64163/r365226

Modified:
    lldb/trunk/include/lldb/Host/Host.h
    lldb/trunk/include/lldb/Host/HostNativeProcessBase.h
    lldb/trunk/include/lldb/Host/HostProcess.h
    lldb/trunk/include/lldb/Host/posix/HostProcessPosix.h
    lldb/trunk/source/Host/common/Host.cpp
    lldb/trunk/source/Host/common/HostProcess.cpp
    lldb/trunk/source/Host/common/MonitoringProcessLauncher.cpp
    lldb/trunk/source/Host/common/ProcessLaunchInfo.cpp
    lldb/trunk/source/Host/posix/HostProcessPosix.cpp

Modified: lldb/trunk/include/lldb/Host/Host.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/Host.h?rev=365295&r1=365294&r2=365295&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Host/Host.h (original)
+++ lldb/trunk/include/lldb/Host/Host.h Mon Jul  8 00:07:05 2019
@@ -99,7 +99,7 @@ public:
   ///     was spawned to monitor \a pid.
   ///
   /// \see static void Host::StopMonitoringChildProcess (uint32_t)
-  static HostThread
+  static llvm::Expected<HostThread>
   StartMonitoringChildProcess(const MonitorChildProcessCallback &callback,
                               lldb::pid_t pid, bool monitor_signals);
 

Modified: lldb/trunk/include/lldb/Host/HostNativeProcessBase.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/HostNativeProcessBase.h?rev=365295&r1=365294&r2=365295&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Host/HostNativeProcessBase.h (original)
+++ lldb/trunk/include/lldb/Host/HostNativeProcessBase.h Mon Jul  8 00:07:05 2019
@@ -35,7 +35,7 @@ public:
 
   lldb::process_t GetSystemHandle() const { return m_process; }
 
-  virtual HostThread
+  virtual llvm::Expected<HostThread>
   StartMonitoring(const Host::MonitorChildProcessCallback &callback,
                   bool monitor_signals) = 0;
 

Modified: lldb/trunk/include/lldb/Host/HostProcess.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/HostProcess.h?rev=365295&r1=365294&r2=365295&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Host/HostProcess.h (original)
+++ lldb/trunk/include/lldb/Host/HostProcess.h Mon Jul  8 00:07:05 2019
@@ -43,8 +43,9 @@ public:
   lldb::pid_t GetProcessId() const;
   bool IsRunning() const;
 
-  HostThread StartMonitoring(const Host::MonitorChildProcessCallback &callback,
-                             bool monitor_signals);
+  llvm::Expected<HostThread>
+  StartMonitoring(const Host::MonitorChildProcessCallback &callback,
+                  bool monitor_signals);
 
   HostNativeProcessBase &GetNativeProcess();
   const HostNativeProcessBase &GetNativeProcess() const;

Modified: lldb/trunk/include/lldb/Host/posix/HostProcessPosix.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/Host/posix/HostProcessPosix.h?rev=365295&r1=365294&r2=365295&view=diff
==============================================================================
--- lldb/trunk/include/lldb/Host/posix/HostProcessPosix.h (original)
+++ lldb/trunk/include/lldb/Host/posix/HostProcessPosix.h Mon Jul  8 00:07:05 2019
@@ -32,8 +32,9 @@ public:
   lldb::pid_t GetProcessId() const override;
   bool IsRunning() const override;
 
-  HostThread StartMonitoring(const Host::MonitorChildProcessCallback &callback,
-                             bool monitor_signals) override;
+  llvm::Expected<HostThread>
+  StartMonitoring(const Host::MonitorChildProcessCallback &callback,
+                  bool monitor_signals) override;
 };
 
 } // namespace lldb_private

Modified: lldb/trunk/source/Host/common/Host.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/Host.cpp?rev=365295&r1=365294&r2=365295&view=diff
==============================================================================
--- lldb/trunk/source/Host/common/Host.cpp (original)
+++ lldb/trunk/source/Host/common/Host.cpp Mon Jul  8 00:07:05 2019
@@ -99,7 +99,7 @@ struct MonitorInfo {
 
 static thread_result_t MonitorChildProcessThreadFunction(void *arg);
 
-HostThread Host::StartMonitoringChildProcess(
+llvm::Expected<HostThread> Host::StartMonitoringChildProcess(
     const Host::MonitorChildProcessCallback &callback, lldb::pid_t pid,
     bool monitor_signals) {
   MonitorInfo *info_ptr = new MonitorInfo();
@@ -112,7 +112,7 @@ HostThread Host::StartMonitoringChildPro
   ::snprintf(thread_name, sizeof(thread_name),
              "<lldb.host.wait4(pid=%" PRIu64 ")>", pid);
   return ThreadLauncher::LaunchThread(
-      thread_name, MonitorChildProcessThreadFunction, info_ptr, nullptr);
+      thread_name, MonitorChildProcessThreadFunction, info_ptr, 0);
 }
 
 #ifndef __linux__

Modified: lldb/trunk/source/Host/common/HostProcess.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/HostProcess.cpp?rev=365295&r1=365294&r2=365295&view=diff
==============================================================================
--- lldb/trunk/source/Host/common/HostProcess.cpp (original)
+++ lldb/trunk/source/Host/common/HostProcess.cpp Mon Jul  8 00:07:05 2019
@@ -32,7 +32,7 @@ lldb::pid_t HostProcess::GetProcessId()
 
 bool HostProcess::IsRunning() const { return m_native_process->IsRunning(); }
 
-HostThread
+llvm::Expected<HostThread>
 HostProcess::StartMonitoring(const Host::MonitorChildProcessCallback &callback,
                              bool monitor_signals) {
   return m_native_process->StartMonitoring(callback, monitor_signals);

Modified: lldb/trunk/source/Host/common/MonitoringProcessLauncher.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/MonitoringProcessLauncher.cpp?rev=365295&r1=365294&r2=365295&view=diff
==============================================================================
--- lldb/trunk/source/Host/common/MonitoringProcessLauncher.cpp (original)
+++ lldb/trunk/source/Host/common/MonitoringProcessLauncher.cpp Mon Jul  8 00:07:05 2019
@@ -53,8 +53,12 @@ MonitoringProcessLauncher::LaunchProcess
     Log *log(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_PROCESS));
 
     assert(launch_info.GetMonitorProcessCallback());
-    process.StartMonitoring(launch_info.GetMonitorProcessCallback(),
-                            launch_info.GetMonitorSignals());
+    llvm::Expected<HostThread> maybe_thread =
+        process.StartMonitoring(launch_info.GetMonitorProcessCallback(),
+                                launch_info.GetMonitorSignals());
+    if (!maybe_thread)
+      error.SetErrorStringWithFormatv("failed to launch host thread: {}",
+                                      llvm::toString(maybe_thread.takeError()));
     if (log)
       log->PutCString("started monitoring child process.");
   } else {

Modified: lldb/trunk/source/Host/common/ProcessLaunchInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/common/ProcessLaunchInfo.cpp?rev=365295&r1=365294&r2=365295&view=diff
==============================================================================
--- lldb/trunk/source/Host/common/ProcessLaunchInfo.cpp (original)
+++ lldb/trunk/source/Host/common/ProcessLaunchInfo.cpp Mon Jul  8 00:07:05 2019
@@ -188,8 +188,13 @@ bool ProcessLaunchInfo::NoOpMonitorCallb
 
 bool ProcessLaunchInfo::MonitorProcess() const {
   if (m_monitor_callback && ProcessIDIsValid()) {
+    llvm::Expected<HostThread> maybe_thread =
     Host::StartMonitoringChildProcess(m_monitor_callback, GetProcessID(),
                                       m_monitor_signals);
+    if (!maybe_thread)
+      LLDB_LOG(lldb_private::GetLogIfAllCategoriesSet(LIBLLDB_LOG_HOST),
+               "failed to launch host thread: {}",
+               llvm::toString(maybe_thread.takeError()));
     return true;
   }
   return false;

Modified: lldb/trunk/source/Host/posix/HostProcessPosix.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Host/posix/HostProcessPosix.cpp?rev=365295&r1=365294&r2=365295&view=diff
==============================================================================
--- lldb/trunk/source/Host/posix/HostProcessPosix.cpp (original)
+++ lldb/trunk/source/Host/posix/HostProcessPosix.cpp Mon Jul  8 00:07:05 2019
@@ -87,7 +87,7 @@ bool HostProcessPosix::IsRunning() const
   return error.Success();
 }
 
-HostThread HostProcessPosix::StartMonitoring(
+llvm::Expected<HostThread> HostProcessPosix::StartMonitoring(
     const Host::MonitorChildProcessCallback &callback, bool monitor_signals) {
   return Host::StartMonitoringChildProcess(callback, m_process,
                                            monitor_signals);




More information about the lldb-commits mailing list