mirror of
https://github.com/opnsense/src.git
synced 2026-03-19 17:29:02 -04:00
186 lines
4.6 KiB
C++
186 lines
4.6 KiB
C++
//===-- SBLaunchInfo.h ------------------------------------------*- C++ -*-===//
|
|
//
|
|
// The LLVM Compiler Infrastructure
|
|
//
|
|
// This file is distributed under the University of Illinois Open Source
|
|
// License. See LICENSE.TXT for details.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLDB_SBLaunchInfo_h_
|
|
#define LLDB_SBLaunchInfo_h_
|
|
|
|
#include "lldb/API/SBDefines.h"
|
|
|
|
namespace lldb {
|
|
|
|
class SBPlatform;
|
|
class SBTarget;
|
|
|
|
class SBLaunchInfo
|
|
{
|
|
public:
|
|
SBLaunchInfo (const char **argv);
|
|
|
|
~SBLaunchInfo();
|
|
|
|
lldb::pid_t
|
|
GetProcessID();
|
|
|
|
uint32_t
|
|
GetUserID();
|
|
|
|
uint32_t
|
|
GetGroupID();
|
|
|
|
bool
|
|
UserIDIsValid ();
|
|
|
|
bool
|
|
GroupIDIsValid ();
|
|
|
|
void
|
|
SetUserID (uint32_t uid);
|
|
|
|
void
|
|
SetGroupID (uint32_t gid);
|
|
|
|
SBFileSpec
|
|
GetExecutableFile ();
|
|
|
|
//----------------------------------------------------------------------
|
|
/// Set the executable file that will be used to launch the process and
|
|
/// optionally set it as the first argument in the argument vector.
|
|
///
|
|
/// This only needs to be specified if clients wish to carefully control
|
|
/// the exact path will be used to launch a binary. If you create a
|
|
/// target with a symlink, that symlink will get resolved in the target
|
|
/// and the resolved path will get used to launch the process. Calling
|
|
/// this function can help you still launch your process using the
|
|
/// path of your choice.
|
|
///
|
|
/// If this function is not called prior to launching with
|
|
/// SBTarget::Launch(...), the target will use the resolved executable
|
|
/// path that was used to create the target.
|
|
///
|
|
/// @param[in] exe_file
|
|
/// The override path to use when launching the executable.
|
|
///
|
|
/// @param[in] add_as_first_arg
|
|
/// If true, then the path will be inserted into the argument vector
|
|
/// prior to launching. Otherwise the argument vector will be left
|
|
/// alone.
|
|
//----------------------------------------------------------------------
|
|
void
|
|
SetExecutableFile (SBFileSpec exe_file, bool add_as_first_arg);
|
|
|
|
|
|
//----------------------------------------------------------------------
|
|
/// Get the listener that will be used to receive process events.
|
|
///
|
|
/// If no listener has been set via a call to
|
|
/// SBLaunchInfo::SetListener(), then an invalid SBListener will be
|
|
/// returned (SBListener::IsValid() will return false). If a listener
|
|
/// has been set, then the valid listener object will be returned.
|
|
//----------------------------------------------------------------------
|
|
SBListener
|
|
GetListener ();
|
|
|
|
//----------------------------------------------------------------------
|
|
/// Set the listener that will be used to receive process events.
|
|
///
|
|
/// By default the SBDebugger, which has a listener, that the SBTarget
|
|
/// belongs to will listen for the process events. Calling this function
|
|
/// allows a different listener to be used to listen for process events.
|
|
//----------------------------------------------------------------------
|
|
void
|
|
SetListener (SBListener &listener);
|
|
|
|
uint32_t
|
|
GetNumArguments ();
|
|
|
|
const char *
|
|
GetArgumentAtIndex (uint32_t idx);
|
|
|
|
void
|
|
SetArguments (const char **argv, bool append);
|
|
|
|
uint32_t
|
|
GetNumEnvironmentEntries ();
|
|
|
|
const char *
|
|
GetEnvironmentEntryAtIndex (uint32_t idx);
|
|
|
|
void
|
|
SetEnvironmentEntries (const char **envp, bool append);
|
|
|
|
void
|
|
Clear ();
|
|
|
|
const char *
|
|
GetWorkingDirectory () const;
|
|
|
|
void
|
|
SetWorkingDirectory (const char *working_dir);
|
|
|
|
uint32_t
|
|
GetLaunchFlags ();
|
|
|
|
void
|
|
SetLaunchFlags (uint32_t flags);
|
|
|
|
const char *
|
|
GetProcessPluginName ();
|
|
|
|
void
|
|
SetProcessPluginName (const char *plugin_name);
|
|
|
|
const char *
|
|
GetShell ();
|
|
|
|
void
|
|
SetShell (const char * path);
|
|
|
|
uint32_t
|
|
GetResumeCount ();
|
|
|
|
void
|
|
SetResumeCount (uint32_t c);
|
|
|
|
bool
|
|
AddCloseFileAction (int fd);
|
|
|
|
bool
|
|
AddDuplicateFileAction (int fd, int dup_fd);
|
|
|
|
bool
|
|
AddOpenFileAction (int fd, const char *path, bool read, bool write);
|
|
|
|
bool
|
|
AddSuppressFileAction (int fd, bool read, bool write);
|
|
|
|
void
|
|
SetLaunchEventData (const char *data);
|
|
|
|
const char *
|
|
GetLaunchEventData () const;
|
|
|
|
bool
|
|
GetDetachOnError() const;
|
|
|
|
void
|
|
SetDetachOnError(bool enable);
|
|
|
|
protected:
|
|
friend class SBPlatform;
|
|
friend class SBTarget;
|
|
|
|
lldb_private::ProcessLaunchInfo &
|
|
ref ();
|
|
|
|
ProcessLaunchInfoSP m_opaque_sp;
|
|
};
|
|
|
|
} // namespace lldb
|
|
|
|
#endif // LLDB_SBLaunchInfo_h_
|