aboutsummaryrefslogtreecommitdiff
path: root/source/Target/ProcessInfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/Target/ProcessInfo.cpp')
-rw-r--r--source/Target/ProcessInfo.cpp194
1 files changed, 79 insertions, 115 deletions
diff --git a/source/Target/ProcessInfo.cpp b/source/Target/ProcessInfo.cpp
index 214db9ed3d45..5c4b2f07e426 100644
--- a/source/Target/ProcessInfo.cpp
+++ b/source/Target/ProcessInfo.cpp
@@ -7,151 +7,115 @@
//
//===----------------------------------------------------------------------===//
+#include "lldb/Target/ProcessInfo.h"
+
// C Includes
// C++ Includes
#include <climits>
// Other libraries and framework includes
// Project includes
-#include "lldb/Target/ProcessInfo.h"
-
#include "lldb/Core/Stream.h"
+#include "lldb/Host/PosixApi.h"
+
+#include "llvm/ADT/SmallString.h"
using namespace lldb;
using namespace lldb_private;
-ProcessInfo::ProcessInfo () :
- m_executable (),
- m_arguments (),
- m_environment (),
- m_uid (UINT32_MAX),
- m_gid (UINT32_MAX),
- m_arch(),
- m_pid (LLDB_INVALID_PROCESS_ID)
-{
-}
-
-ProcessInfo::ProcessInfo (const char *name, const ArchSpec &arch, lldb::pid_t pid) :
- m_executable (name, false),
- m_arguments (),
- m_environment(),
- m_uid (UINT32_MAX),
- m_gid (UINT32_MAX),
- m_arch (arch),
- m_pid (pid)
-{
-}
-
-void
-ProcessInfo::Clear ()
-{
- m_executable.Clear();
- m_arguments.Clear();
- m_environment.Clear();
- m_uid = UINT32_MAX;
- m_gid = UINT32_MAX;
- m_arch.Clear();
- m_pid = LLDB_INVALID_PROCESS_ID;
+ProcessInfo::ProcessInfo()
+ : m_executable(), m_arguments(), m_environment(), m_uid(UINT32_MAX),
+ m_gid(UINT32_MAX), m_arch(), m_pid(LLDB_INVALID_PROCESS_ID) {}
+
+ProcessInfo::ProcessInfo(const char *name, const ArchSpec &arch,
+ lldb::pid_t pid)
+ : m_executable(name, false), m_arguments(), m_environment(),
+ m_uid(UINT32_MAX), m_gid(UINT32_MAX), m_arch(arch), m_pid(pid) {}
+
+void ProcessInfo::Clear() {
+ m_executable.Clear();
+ m_arguments.Clear();
+ m_environment.Clear();
+ m_uid = UINT32_MAX;
+ m_gid = UINT32_MAX;
+ m_arch.Clear();
+ m_pid = LLDB_INVALID_PROCESS_ID;
}
-const char *
-ProcessInfo::GetName() const
-{
- return m_executable.GetFilename().GetCString();
+const char *ProcessInfo::GetName() const {
+ return m_executable.GetFilename().GetCString();
}
-size_t
-ProcessInfo::GetNameLength() const
-{
- return m_executable.GetFilename().GetLength();
+size_t ProcessInfo::GetNameLength() const {
+ return m_executable.GetFilename().GetLength();
}
-void
-ProcessInfo::Dump (Stream &s, Platform *platform) const
-{
- s << "Executable: " << GetName() << "\n";
- s << "Triple: ";
- m_arch.DumpTriple(s);
- s << "\n";
+void ProcessInfo::Dump(Stream &s, Platform *platform) const {
+ s << "Executable: " << GetName() << "\n";
+ s << "Triple: ";
+ m_arch.DumpTriple(s);
+ s << "\n";
- s << "Arguments:\n";
- m_arguments.Dump(s);
+ s << "Arguments:\n";
+ m_arguments.Dump(s);
- s << "Environment:\n";
- m_environment.Dump(s, "env");
+ s << "Environment:\n";
+ m_environment.Dump(s, "env");
}
-void
-ProcessInfo::SetExecutableFile (const FileSpec &exe_file, bool add_exe_file_as_first_arg)
-{
- if (exe_file)
- {
- m_executable = exe_file;
- if (add_exe_file_as_first_arg)
- {
- char filename[PATH_MAX];
- if (exe_file.GetPath(filename, sizeof(filename)))
- m_arguments.InsertArgumentAtIndex (0, filename);
- }
- }
- else
- {
- m_executable.Clear();
+void ProcessInfo::SetExecutableFile(const FileSpec &exe_file,
+ bool add_exe_file_as_first_arg) {
+ if (exe_file) {
+ m_executable = exe_file;
+ if (add_exe_file_as_first_arg) {
+ llvm::SmallString<PATH_MAX> filename;
+ exe_file.GetPath(filename);
+ if (!filename.empty())
+ m_arguments.InsertArgumentAtIndex(0, filename);
}
+ } else {
+ m_executable.Clear();
+ }
}
-const char *
-ProcessInfo::GetArg0 () const
-{
- return (m_arg0.empty() ? nullptr : m_arg0.c_str());
+llvm::StringRef ProcessInfo::GetArg0() const {
+ return m_arg0;
}
-void
-ProcessInfo::SetArg0 (const char *arg)
-{
- if (arg && arg[0])
- m_arg0 = arg;
- else
- m_arg0.clear();
+void ProcessInfo::SetArg0(llvm::StringRef arg) {
+ m_arg0 = arg;
}
-void
-ProcessInfo::SetArguments (char const **argv, bool first_arg_is_executable)
-{
- m_arguments.SetArguments (argv);
-
- // Is the first argument the executable?
- if (first_arg_is_executable)
- {
- const char *first_arg = m_arguments.GetArgumentAtIndex (0);
- if (first_arg)
- {
- // Yes the first argument is an executable, set it as the executable
- // in the launch options. Don't resolve the file path as the path
- // could be a remote platform path
- const bool resolve = false;
- m_executable.SetFile(first_arg, resolve);
- }
+void ProcessInfo::SetArguments(char const **argv,
+ bool first_arg_is_executable) {
+ m_arguments.SetArguments(argv);
+
+ // Is the first argument the executable?
+ if (first_arg_is_executable) {
+ const char *first_arg = m_arguments.GetArgumentAtIndex(0);
+ if (first_arg) {
+ // Yes the first argument is an executable, set it as the executable
+ // in the launch options. Don't resolve the file path as the path
+ // could be a remote platform path
+ const bool resolve = false;
+ m_executable.SetFile(first_arg, resolve);
}
+ }
}
-void
-ProcessInfo::SetArguments (const Args& args, bool first_arg_is_executable)
-{
- // Copy all arguments
- m_arguments = args;
-
- // Is the first argument the executable?
- if (first_arg_is_executable)
- {
- const char *first_arg = m_arguments.GetArgumentAtIndex (0);
- if (first_arg)
- {
- // Yes the first argument is an executable, set it as the executable
- // in the launch options. Don't resolve the file path as the path
- // could be a remote platform path
- const bool resolve = false;
- m_executable.SetFile(first_arg, resolve);
- }
+void ProcessInfo::SetArguments(const Args &args, bool first_arg_is_executable) {
+ // Copy all arguments
+ m_arguments = args;
+
+ // Is the first argument the executable?
+ if (first_arg_is_executable) {
+ const char *first_arg = m_arguments.GetArgumentAtIndex(0);
+ if (first_arg) {
+ // Yes the first argument is an executable, set it as the executable
+ // in the launch options. Don't resolve the file path as the path
+ // could be a remote platform path
+ const bool resolve = false;
+ m_executable.SetFile(first_arg, resolve);
}
+ }
}