forked from OSchip/llvm-project
295 lines
5.6 KiB
C++
295 lines
5.6 KiB
C++
//===-- SBLaunchInfo.cpp ----------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "lldb/API/SBLaunchInfo.h"
|
|
|
|
#include "lldb/API/SBFileSpec.h"
|
|
#include "lldb/API/SBListener.h"
|
|
#include "lldb/Target/ProcessLaunchInfo.h"
|
|
|
|
using namespace lldb;
|
|
using namespace lldb_private;
|
|
|
|
SBLaunchInfo::SBLaunchInfo (const char **argv) :
|
|
m_opaque_sp(new ProcessLaunchInfo())
|
|
{
|
|
m_opaque_sp->GetFlags().Reset (eLaunchFlagDebug | eLaunchFlagDisableASLR);
|
|
if (argv && argv[0])
|
|
m_opaque_sp->GetArguments().SetArguments(argv);
|
|
}
|
|
|
|
SBLaunchInfo::~SBLaunchInfo()
|
|
{
|
|
}
|
|
|
|
lldb_private::ProcessLaunchInfo &
|
|
SBLaunchInfo::ref ()
|
|
{
|
|
return *m_opaque_sp;
|
|
}
|
|
|
|
const lldb_private::ProcessLaunchInfo &
|
|
SBLaunchInfo::ref () const
|
|
{
|
|
return *m_opaque_sp;
|
|
}
|
|
|
|
lldb::pid_t
|
|
SBLaunchInfo::GetProcessID()
|
|
{
|
|
return m_opaque_sp->GetProcessID();
|
|
}
|
|
|
|
uint32_t
|
|
SBLaunchInfo::GetUserID()
|
|
{
|
|
return m_opaque_sp->GetUserID();
|
|
}
|
|
|
|
uint32_t
|
|
SBLaunchInfo::GetGroupID()
|
|
{
|
|
return m_opaque_sp->GetGroupID();
|
|
}
|
|
|
|
bool
|
|
SBLaunchInfo::UserIDIsValid ()
|
|
{
|
|
return m_opaque_sp->UserIDIsValid();
|
|
}
|
|
|
|
bool
|
|
SBLaunchInfo::GroupIDIsValid ()
|
|
{
|
|
return m_opaque_sp->GroupIDIsValid();
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::SetUserID (uint32_t uid)
|
|
{
|
|
m_opaque_sp->SetUserID (uid);
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::SetGroupID (uint32_t gid)
|
|
{
|
|
m_opaque_sp->SetGroupID (gid);
|
|
}
|
|
|
|
SBFileSpec
|
|
SBLaunchInfo::GetExecutableFile ()
|
|
{
|
|
return SBFileSpec (m_opaque_sp->GetExecutableFile());
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::SetExecutableFile (SBFileSpec exe_file, bool add_as_first_arg)
|
|
{
|
|
m_opaque_sp->SetExecutableFile(exe_file.ref(), add_as_first_arg);
|
|
}
|
|
|
|
SBListener
|
|
SBLaunchInfo::GetListener ()
|
|
{
|
|
return SBListener(m_opaque_sp->GetListener());
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::SetListener (SBListener &listener)
|
|
{
|
|
m_opaque_sp->SetListener(listener.GetSP());
|
|
}
|
|
|
|
uint32_t
|
|
SBLaunchInfo::GetNumArguments ()
|
|
{
|
|
return m_opaque_sp->GetArguments().GetArgumentCount();
|
|
}
|
|
|
|
const char *
|
|
SBLaunchInfo::GetArgumentAtIndex (uint32_t idx)
|
|
{
|
|
return m_opaque_sp->GetArguments().GetArgumentAtIndex(idx);
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::SetArguments (const char **argv, bool append)
|
|
{
|
|
if (append)
|
|
{
|
|
if (argv)
|
|
m_opaque_sp->GetArguments().AppendArguments(argv);
|
|
}
|
|
else
|
|
{
|
|
if (argv)
|
|
m_opaque_sp->GetArguments().SetArguments(argv);
|
|
else
|
|
m_opaque_sp->GetArguments().Clear();
|
|
}
|
|
}
|
|
|
|
uint32_t
|
|
SBLaunchInfo::GetNumEnvironmentEntries ()
|
|
{
|
|
return m_opaque_sp->GetEnvironmentEntries().GetArgumentCount();
|
|
}
|
|
|
|
const char *
|
|
SBLaunchInfo::GetEnvironmentEntryAtIndex (uint32_t idx)
|
|
{
|
|
return m_opaque_sp->GetEnvironmentEntries().GetArgumentAtIndex(idx);
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::SetEnvironmentEntries (const char **envp, bool append)
|
|
{
|
|
if (append)
|
|
{
|
|
if (envp)
|
|
m_opaque_sp->GetEnvironmentEntries().AppendArguments(envp);
|
|
}
|
|
else
|
|
{
|
|
if (envp)
|
|
m_opaque_sp->GetEnvironmentEntries().SetArguments(envp);
|
|
else
|
|
m_opaque_sp->GetEnvironmentEntries().Clear();
|
|
}
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::Clear ()
|
|
{
|
|
m_opaque_sp->Clear();
|
|
}
|
|
|
|
const char *
|
|
SBLaunchInfo::GetWorkingDirectory () const
|
|
{
|
|
return m_opaque_sp->GetWorkingDirectory().GetCString();
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::SetWorkingDirectory (const char *working_dir)
|
|
{
|
|
m_opaque_sp->SetWorkingDirectory(FileSpec{working_dir, false});
|
|
}
|
|
|
|
uint32_t
|
|
SBLaunchInfo::GetLaunchFlags ()
|
|
{
|
|
return m_opaque_sp->GetFlags().Get();
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::SetLaunchFlags (uint32_t flags)
|
|
{
|
|
m_opaque_sp->GetFlags().Reset(flags);
|
|
}
|
|
|
|
const char *
|
|
SBLaunchInfo::GetProcessPluginName ()
|
|
{
|
|
return m_opaque_sp->GetProcessPluginName();
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::SetProcessPluginName (const char *plugin_name)
|
|
{
|
|
return m_opaque_sp->SetProcessPluginName (plugin_name);
|
|
}
|
|
|
|
const char *
|
|
SBLaunchInfo::GetShell ()
|
|
{
|
|
// Constify this string so that it is saved in the string pool. Otherwise
|
|
// it would be freed when this function goes out of scope.
|
|
ConstString shell(m_opaque_sp->GetShell().GetPath().c_str());
|
|
return shell.AsCString();
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::SetShell (const char * path)
|
|
{
|
|
m_opaque_sp->SetShell (FileSpec(path, false));
|
|
}
|
|
|
|
bool
|
|
SBLaunchInfo::GetShellExpandArguments ()
|
|
{
|
|
return m_opaque_sp->GetShellExpandArguments();
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::SetShellExpandArguments (bool expand)
|
|
{
|
|
m_opaque_sp->SetShellExpandArguments(expand);
|
|
}
|
|
|
|
uint32_t
|
|
SBLaunchInfo::GetResumeCount ()
|
|
{
|
|
return m_opaque_sp->GetResumeCount();
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::SetResumeCount (uint32_t c)
|
|
{
|
|
m_opaque_sp->SetResumeCount (c);
|
|
}
|
|
|
|
bool
|
|
SBLaunchInfo::AddCloseFileAction (int fd)
|
|
{
|
|
return m_opaque_sp->AppendCloseFileAction(fd);
|
|
}
|
|
|
|
bool
|
|
SBLaunchInfo::AddDuplicateFileAction (int fd, int dup_fd)
|
|
{
|
|
return m_opaque_sp->AppendDuplicateFileAction(fd, dup_fd);
|
|
}
|
|
|
|
bool
|
|
SBLaunchInfo::AddOpenFileAction (int fd, const char *path, bool read, bool write)
|
|
{
|
|
return m_opaque_sp->AppendOpenFileAction(fd, FileSpec{path, false}, read, write);
|
|
}
|
|
|
|
bool
|
|
SBLaunchInfo::AddSuppressFileAction (int fd, bool read, bool write)
|
|
{
|
|
return m_opaque_sp->AppendSuppressFileAction(fd, read, write);
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::SetLaunchEventData (const char *data)
|
|
{
|
|
m_opaque_sp->SetLaunchEventData (data);
|
|
}
|
|
|
|
const char *
|
|
SBLaunchInfo::GetLaunchEventData () const
|
|
{
|
|
return m_opaque_sp->GetLaunchEventData ();
|
|
}
|
|
|
|
void
|
|
SBLaunchInfo::SetDetachOnError (bool enable)
|
|
{
|
|
m_opaque_sp->SetDetachOnError (enable);
|
|
}
|
|
|
|
bool
|
|
SBLaunchInfo::GetDetachOnError () const
|
|
{
|
|
return m_opaque_sp->GetDetachOnError ();
|
|
}
|