191 lines
6.1 KiB
C++
191 lines
6.1 KiB
C++
//===-- SBAttachInfo.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_SBAttachInfo_h_
|
|
#define LLDB_SBAttachInfo_h_
|
|
|
|
#include "lldb/API/SBDefines.h"
|
|
|
|
namespace lldb {
|
|
|
|
class SBTarget;
|
|
|
|
class LLDB_API SBAttachInfo {
|
|
public:
|
|
SBAttachInfo();
|
|
|
|
SBAttachInfo(lldb::pid_t pid);
|
|
|
|
//------------------------------------------------------------------
|
|
/// Attach to a process by name.
|
|
///
|
|
/// This function implies that a future call to SBTarget::Attach(...)
|
|
/// will be synchronous.
|
|
///
|
|
/// @param[in] path
|
|
/// A full or partial name for the process to attach to.
|
|
///
|
|
/// @param[in] wait_for
|
|
/// If \b false, attach to an existing process whose name matches.
|
|
/// If \b true, then wait for the next process whose name matches.
|
|
//------------------------------------------------------------------
|
|
SBAttachInfo(const char *path, bool wait_for);
|
|
|
|
//------------------------------------------------------------------
|
|
/// Attach to a process by name.
|
|
///
|
|
/// Future calls to SBTarget::Attach(...) will be synchronous or
|
|
/// asynchronous depending on the \a async argument.
|
|
///
|
|
/// @param[in] path
|
|
/// A full or partial name for the process to attach to.
|
|
///
|
|
/// @param[in] wait_for
|
|
/// If \b false, attach to an existing process whose name matches.
|
|
/// If \b true, then wait for the next process whose name matches.
|
|
///
|
|
/// @param[in] async
|
|
/// If \b false, then the SBTarget::Attach(...) call will be a
|
|
/// synchronous call with no way to cancel the attach in
|
|
/// progress.
|
|
/// If \b true, then the SBTarget::Attach(...) function will
|
|
/// return immediately and clients are expected to wait for a
|
|
/// process eStateStopped event if a suitable process is
|
|
/// eventually found. If the client wants to cancel the event,
|
|
/// SBProcess::Stop() can be called and an eStateExited process
|
|
/// event will be delivered.
|
|
//------------------------------------------------------------------
|
|
SBAttachInfo(const char *path, bool wait_for, bool async);
|
|
|
|
SBAttachInfo(const SBAttachInfo &rhs);
|
|
|
|
~SBAttachInfo();
|
|
|
|
SBAttachInfo &operator=(const SBAttachInfo &rhs);
|
|
|
|
lldb::pid_t GetProcessID();
|
|
|
|
void SetProcessID(lldb::pid_t pid);
|
|
|
|
void SetExecutable(const char *path);
|
|
|
|
void SetExecutable(lldb::SBFileSpec exe_file);
|
|
|
|
bool GetWaitForLaunch();
|
|
|
|
//------------------------------------------------------------------
|
|
/// Set attach by process name settings.
|
|
///
|
|
/// Designed to be used after a call to SBAttachInfo::SetExecutable().
|
|
/// This function implies that a call to SBTarget::Attach(...) will
|
|
/// be synchronous.
|
|
///
|
|
/// @param[in] b
|
|
/// If \b false, attach to an existing process whose name matches.
|
|
/// If \b true, then wait for the next process whose name matches.
|
|
//------------------------------------------------------------------
|
|
void SetWaitForLaunch(bool b);
|
|
|
|
//------------------------------------------------------------------
|
|
/// Set attach by process name settings.
|
|
///
|
|
/// Designed to be used after a call to SBAttachInfo::SetExecutable().
|
|
/// Future calls to SBTarget::Attach(...) will be synchronous or
|
|
/// asynchronous depending on the \a async argument.
|
|
///
|
|
/// @param[in] b
|
|
/// If \b false, attach to an existing process whose name matches.
|
|
/// If \b true, then wait for the next process whose name matches.
|
|
///
|
|
/// @param[in] async
|
|
/// If \b false, then the SBTarget::Attach(...) call will be a
|
|
/// synchronous call with no way to cancel the attach in
|
|
/// progress.
|
|
/// If \b true, then the SBTarget::Attach(...) function will
|
|
/// return immediately and clients are expected to wait for a
|
|
/// process eStateStopped event if a suitable process is
|
|
/// eventually found. If the client wants to cancel the event,
|
|
/// SBProcess::Stop() can be called and an eStateExited process
|
|
/// event will be delivered.
|
|
//------------------------------------------------------------------
|
|
void SetWaitForLaunch(bool b, bool async);
|
|
|
|
bool GetIgnoreExisting();
|
|
|
|
void SetIgnoreExisting(bool b);
|
|
|
|
uint32_t GetResumeCount();
|
|
|
|
void SetResumeCount(uint32_t c);
|
|
|
|
const char *GetProcessPluginName();
|
|
|
|
void SetProcessPluginName(const char *plugin_name);
|
|
|
|
uint32_t GetUserID();
|
|
|
|
uint32_t GetGroupID();
|
|
|
|
bool UserIDIsValid();
|
|
|
|
bool GroupIDIsValid();
|
|
|
|
void SetUserID(uint32_t uid);
|
|
|
|
void SetGroupID(uint32_t gid);
|
|
|
|
uint32_t GetEffectiveUserID();
|
|
|
|
uint32_t GetEffectiveGroupID();
|
|
|
|
bool EffectiveUserIDIsValid();
|
|
|
|
bool EffectiveGroupIDIsValid();
|
|
|
|
void SetEffectiveUserID(uint32_t uid);
|
|
|
|
void SetEffectiveGroupID(uint32_t gid);
|
|
|
|
lldb::pid_t GetParentProcessID();
|
|
|
|
void SetParentProcessID(lldb::pid_t pid);
|
|
|
|
bool ParentProcessIDIsValid();
|
|
|
|
//----------------------------------------------------------------------
|
|
/// 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);
|
|
|
|
protected:
|
|
friend class SBTarget;
|
|
|
|
lldb_private::ProcessAttachInfo &ref();
|
|
|
|
ProcessAttachInfoSP m_opaque_sp;
|
|
};
|
|
|
|
} // namespace lldb
|
|
|
|
#endif // LLDB_SBAttachInfo_h_
|