clang 20.0.0 (based on r547379) from build 12806354. Bug: http://b/379133546 Test: N/A Change-Id: I2eb8938af55d809de674be63cb30cf27e801862b Upstream-Commit: ad834e67b1105d15ef907f6255d4c96e8e733f57
212 lines
6.6 KiB
C++
212 lines
6.6 KiB
C++
//===-- SBAttachInfo.h ------------------------------------------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef LLDB_API_SBATTACHINFO_H
|
|
#define LLDB_API_SBATTACHINFO_H
|
|
|
|
#include "lldb/API/SBDefines.h"
|
|
|
|
namespace lldb_private {
|
|
class ScriptInterpreter;
|
|
}
|
|
|
|
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
|
|
/// SBAttachInfo::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);
|
|
|
|
/// Get the shadow listener that receive public process events,
|
|
/// additionally to the default process event listener.
|
|
///
|
|
/// If no listener has been set via a call to
|
|
/// SBLaunchInfo::SetShadowListener(), 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 GetShadowListener();
|
|
|
|
/// Set the shadow listener that will receive public process events,
|
|
/// additionally to the default process event listener.
|
|
///
|
|
/// By default a process have no shadow event listener.
|
|
/// Calling this function allows public process events to be broadcasted to an
|
|
/// additional listener on top of the default process event listener.
|
|
/// If the `listener` argument is invalid (SBListener::IsValid() will
|
|
/// return false), this will clear the shadow listener.
|
|
void SetShadowListener(SBListener &listener);
|
|
|
|
const char *GetScriptedProcessClassName() const;
|
|
|
|
void SetScriptedProcessClassName(const char *class_name);
|
|
|
|
lldb::SBStructuredData GetScriptedProcessDictionary() const;
|
|
|
|
void SetScriptedProcessDictionary(lldb::SBStructuredData dict);
|
|
|
|
protected:
|
|
friend class SBTarget;
|
|
friend class SBPlatform;
|
|
|
|
friend class lldb_private::ScriptInterpreter;
|
|
|
|
lldb_private::ProcessAttachInfo &ref();
|
|
|
|
ProcessAttachInfoSP m_opaque_sp;
|
|
};
|
|
|
|
} // namespace lldb
|
|
|
|
#endif // LLDB_API_SBATTACHINFO_H
|