diff options
Diffstat (limited to 'source/Host/posix/HostProcessPosix.cpp')
-rw-r--r-- | source/Host/posix/HostProcessPosix.cpp | 122 |
1 files changed, 51 insertions, 71 deletions
diff --git a/source/Host/posix/HostProcessPosix.cpp b/source/Host/posix/HostProcessPosix.cpp index 93844d9b99d3..9dd9fef94cdb 100644 --- a/source/Host/posix/HostProcessPosix.cpp +++ b/source/Host/posix/HostProcessPosix.cpp @@ -8,8 +8,8 @@ //===----------------------------------------------------------------------===// #include "lldb/Host/Host.h" -#include "lldb/Host/posix/HostProcessPosix.h" #include "lldb/Host/FileSystem.h" +#include "lldb/Host/posix/HostProcessPosix.h" #include "llvm/ADT/STLExtras.h" @@ -17,97 +17,77 @@ using namespace lldb_private; -namespace -{ - const int kInvalidPosixProcess = 0; +namespace { +const int kInvalidPosixProcess = 0; } HostProcessPosix::HostProcessPosix() - : HostNativeProcessBase(kInvalidPosixProcess) -{ -} + : HostNativeProcessBase(kInvalidPosixProcess) {} HostProcessPosix::HostProcessPosix(lldb::process_t process) - : HostNativeProcessBase(process) -{ -} + : HostNativeProcessBase(process) {} -HostProcessPosix::~HostProcessPosix() -{ -} +HostProcessPosix::~HostProcessPosix() {} -Error HostProcessPosix::Signal(int signo) const -{ - if (m_process == kInvalidPosixProcess) - { - Error error; - error.SetErrorString("HostProcessPosix refers to an invalid process"); - return error; - } +Error HostProcessPosix::Signal(int signo) const { + if (m_process == kInvalidPosixProcess) { + Error error; + error.SetErrorString("HostProcessPosix refers to an invalid process"); + return error; + } - return HostProcessPosix::Signal(m_process, signo); + return HostProcessPosix::Signal(m_process, signo); } -Error HostProcessPosix::Signal(lldb::process_t process, int signo) -{ - Error error; +Error HostProcessPosix::Signal(lldb::process_t process, int signo) { + Error error; - if (-1 == ::kill(process, signo)) - error.SetErrorToErrno(); + if (-1 == ::kill(process, signo)) + error.SetErrorToErrno(); - return error; + return error; } -Error HostProcessPosix::Terminate() -{ - return Signal(SIGKILL); -} +Error HostProcessPosix::Terminate() { return Signal(SIGKILL); } -Error HostProcessPosix::GetMainModule(FileSpec &file_spec) const -{ - Error error; +Error HostProcessPosix::GetMainModule(FileSpec &file_spec) const { + Error error; - // Use special code here because proc/[pid]/exe is a symbolic link. - char link_path[PATH_MAX]; - if (snprintf(link_path, PATH_MAX, "/proc/%" PRIu64 "/exe", m_process) != 1) - { - error.SetErrorString("Unable to build /proc/<pid>/exe string"); - return error; - } - - error = FileSystem::Readlink(FileSpec{link_path, false}, file_spec); - if (!error.Success()) - return error; - - // If the binary has been deleted, the link name has " (deleted)" appended. - // Remove if there. - if (file_spec.GetFilename().GetStringRef().endswith(" (deleted)")) - { - const char *filename = file_spec.GetFilename().GetCString(); - static const size_t deleted_len = strlen(" (deleted)"); - const size_t len = file_spec.GetFilename().GetLength(); - file_spec.GetFilename().SetCStringWithLength(filename, len - deleted_len); - } + // Use special code here because proc/[pid]/exe is a symbolic link. + char link_path[PATH_MAX]; + if (snprintf(link_path, PATH_MAX, "/proc/%" PRIu64 "/exe", m_process) != 1) { + error.SetErrorString("Unable to build /proc/<pid>/exe string"); return error; -} + } -lldb::pid_t HostProcessPosix::GetProcessId() const -{ - return m_process; + error = FileSystem::Readlink(FileSpec{link_path, false}, file_spec); + if (!error.Success()) + return error; + + // If the binary has been deleted, the link name has " (deleted)" appended. + // Remove if there. + if (file_spec.GetFilename().GetStringRef().endswith(" (deleted)")) { + const char *filename = file_spec.GetFilename().GetCString(); + static const size_t deleted_len = strlen(" (deleted)"); + const size_t len = file_spec.GetFilename().GetLength(); + file_spec.GetFilename().SetCStringWithLength(filename, len - deleted_len); + } + return error; } -bool HostProcessPosix::IsRunning() const -{ - if (m_process == kInvalidPosixProcess) - return false; +lldb::pid_t HostProcessPosix::GetProcessId() const { return m_process; } + +bool HostProcessPosix::IsRunning() const { + if (m_process == kInvalidPosixProcess) + return false; - // Send this process the null signal. If it succeeds the process is running. - Error error = Signal(0); - return error.Success(); + // Send this process the null signal. If it succeeds the process is running. + Error error = Signal(0); + return error.Success(); } -HostThread -HostProcessPosix::StartMonitoring(const Host::MonitorChildProcessCallback &callback, bool monitor_signals) -{ - return Host::StartMonitoringChildProcess(callback, m_process, monitor_signals); +HostThread HostProcessPosix::StartMonitoring( + const Host::MonitorChildProcessCallback &callback, bool monitor_signals) { + return Host::StartMonitoringChildProcess(callback, m_process, + monitor_signals); } |