LLDB mainline
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
lldb::SBProcess Class Reference

#include <SBProcess.h>

Public Member Functions

 FLAGS_ANONYMOUS_ENUM ()
 Broadcaster event bits definitions.
 
 SBProcess ()
 
 SBProcess (const lldb::SBProcess &rhs)
 
const lldb::SBProcessoperator= (const lldb::SBProcess &rhs)
 
 ~SBProcess ()
 
const char * GetPluginName ()
 
 LLDB_DEPRECATED_FIXME ("Use GetPluginName()", "GetPluginName()") const char *GetShortPluginName()
 
void Clear ()
 
 operator bool () const
 
bool IsValid () const
 
lldb::SBTarget GetTarget () const
 
lldb::ByteOrder GetByteOrder () const
 
size_t PutSTDIN (const char *src, size_t src_len)
 
size_t GetSTDOUT (char *dst, size_t dst_len) const
 
size_t GetSTDERR (char *dst, size_t dst_len) const
 
size_t GetAsyncProfileData (char *dst, size_t dst_len) const
 
void ReportEventState (const lldb::SBEvent &event, FILE *out) const
 
void ReportEventState (const lldb::SBEvent &event, SBFile file) const
 
void ReportEventState (const lldb::SBEvent &event, FileSP BORROWED) const
 
void AppendEventStateReport (const lldb::SBEvent &event, lldb::SBCommandReturnObject &result)
 
bool RemoteAttachToProcessWithID (lldb::pid_t pid, lldb::SBError &error)
 Remote connection related functions.
 
bool RemoteLaunch (char const **argv, char const **envp, const char *stdin_path, const char *stdout_path, const char *stderr_path, const char *working_directory, uint32_t launch_flags, bool stop_at_entry, lldb::SBError &error)
 
uint32_t GetNumThreads ()
 
lldb::SBThread GetThreadAtIndex (size_t index)
 
lldb::SBThread GetThreadByID (lldb::tid_t sb_thread_id)
 
lldb::SBThread GetThreadByIndexID (uint32_t index_id)
 
lldb::SBThread GetSelectedThread () const
 
lldb::SBThread CreateOSPluginThread (lldb::tid_t tid, lldb::addr_t context)
 
bool SetSelectedThread (const lldb::SBThread &thread)
 
bool SetSelectedThreadByID (lldb::tid_t tid)
 
bool SetSelectedThreadByIndexID (uint32_t index_id)
 
uint32_t GetNumQueues ()
 
lldb::SBQueue GetQueueAtIndex (size_t index)
 
lldb::StateType GetState ()
 
int GetExitStatus ()
 
const char * GetExitDescription ()
 
lldb::pid_t GetProcessID ()
 Gets the process ID.
 
uint32_t GetUniqueID ()
 Gets the unique ID associated with this process object.
 
uint32_t GetAddressByteSize () const
 
lldb::SBError Destroy ()
 
lldb::SBError Continue ()
 
lldb::SBError Stop ()
 
lldb::SBError Kill ()
 
lldb::SBError Detach ()
 
lldb::SBError Detach (bool keep_stopped)
 
lldb::SBError Signal (int signal)
 
lldb::SBUnixSignals GetUnixSignals ()
 
void SendAsyncInterrupt ()
 
uint32_t GetStopID (bool include_expression_stops=false)
 
lldb::SBEvent GetStopEventForStopID (uint32_t stop_id)
 Gets the stop event corresponding to stop ID.
 
void ForceScriptedState (StateType new_state)
 If the process is a scripted process, changes its state to the new state.
 
size_t ReadMemory (addr_t addr, void *buf, size_t size, lldb::SBError &error)
 
size_t WriteMemory (addr_t addr, const void *buf, size_t size, lldb::SBError &error)
 
size_t ReadCStringFromMemory (addr_t addr, void *char_buf, size_t size, lldb::SBError &error)
 
uint64_t ReadUnsignedFromMemory (addr_t addr, uint32_t byte_size, lldb::SBError &error)
 
lldb::addr_t ReadPointerFromMemory (addr_t addr, lldb::SBError &error)
 
lldb::SBBroadcaster GetBroadcaster () const
 
bool GetDescription (lldb::SBStream &description)
 
SBStructuredData GetExtendedCrashInformation ()
 
uint32_t GetNumSupportedHardwareWatchpoints (lldb::SBError &error) const
 
uint32_t LoadImage (lldb::SBFileSpec &remote_image_spec, lldb::SBError &error)
 Load a shared library into this process.
 
uint32_t LoadImage (const lldb::SBFileSpec &local_image_spec, const lldb::SBFileSpec &remote_image_spec, lldb::SBError &error)
 Load a shared library into this process.
 
uint32_t LoadImageUsingPaths (const lldb::SBFileSpec &image_spec, SBStringList &paths, lldb::SBFileSpec &loaded_path, lldb::SBError &error)
 Load a shared library into this process, starting with a library name and a list of paths, searching along the list of paths till you find a matching library.
 
lldb::SBError UnloadImage (uint32_t image_token)
 
lldb::SBError SendEventData (const char *data)
 
uint32_t GetNumExtendedBacktraceTypes ()
 Return the number of different thread-origin extended backtraces this process can support.
 
const char * GetExtendedBacktraceTypeAtIndex (uint32_t idx)
 Return the name of one of the thread-origin extended backtrace methods.
 
lldb::SBThreadCollection GetHistoryThreads (addr_t addr)
 
bool IsInstrumentationRuntimePresent (InstrumentationRuntimeType type)
 
lldb::SBError SaveCore (const char *file_name, const char *flavor, SaveCoreStyle core_style)
 Save the state of the process in a core file.
 
lldb::SBError SaveCore (const char *file_name)
 Save the state of the process with the a flavor that matches the current process' main executable (if supported).
 
lldb::SBError GetMemoryRegionInfo (lldb::addr_t load_addr, lldb::SBMemoryRegionInfo &region_info)
 Query the address load_addr and store the details of the memory region that contains it in the supplied SBMemoryRegionInfo object.
 
lldb::SBMemoryRegionInfoList GetMemoryRegions ()
 Return the list of memory regions within the process.
 
lldb::SBProcessInfo GetProcessInfo ()
 Return information about the process.
 
lldb::SBFileSpec GetCoreFile ()
 Get the file specification for the core file that is currently being used for the process.
 
lldb::addr_t AllocateMemory (size_t size, uint32_t permissions, lldb::SBError &error)
 Allocate memory within the process.
 
lldb::SBError DeallocateMemory (lldb::addr_t ptr)
 Deallocate memory in the process.
 
lldb::SBScriptObject GetScriptedImplementation ()
 
lldb::addr_t GetAddressMask (lldb::AddressMaskType type, lldb::AddressMaskRange addr_range=lldb::eAddressMaskRangeLow)
 Get the current address mask that will be applied to addresses before reading from memory.
 
void SetAddressMask (lldb::AddressMaskType type, lldb::addr_t mask, lldb::AddressMaskRange addr_range=lldb::eAddressMaskRangeLow)
 Set the current address mask that can be applied to addresses before reading from memory.
 
void SetAddressableBits (AddressMaskType type, uint32_t num_bits, AddressMaskRange addr_range=lldb::eAddressMaskRangeLow)
 Set the number of bits used for addressing in this Process.
 
lldb::addr_t FixAddress (lldb::addr_t addr, lldb::AddressMaskType type=lldb::eAddressMaskTypeAny)
 Clear the non-address bits of an addr value and return a virtual address in memory.
 

Static Public Member Functions

static const char * GetBroadcasterClassName ()
 
static lldb::StateType GetStateFromEvent (const lldb::SBEvent &event)
 
static bool GetRestartedFromEvent (const lldb::SBEvent &event)
 
static size_t GetNumRestartedReasonsFromEvent (const lldb::SBEvent &event)
 
static const char * GetRestartedReasonAtIndexFromEvent (const lldb::SBEvent &event, size_t idx)
 
static lldb::SBProcess GetProcessFromEvent (const lldb::SBEvent &event)
 
static bool GetInterruptedFromEvent (const lldb::SBEvent &event)
 
static lldb::SBStructuredData GetStructuredDataFromEvent (const lldb::SBEvent &event)
 
static bool EventIsProcessEvent (const lldb::SBEvent &event)
 
static bool EventIsStructuredDataEvent (const lldb::SBEvent &event)
 
static const char * GetBroadcasterClass ()
 

Protected Member Functions

 SBProcess (const lldb::ProcessSP &process_sp)
 
lldb::ProcessSP GetSP () const
 
void SetSP (const lldb::ProcessSP &process_sp)
 

Protected Attributes

lldb::ProcessWP m_opaque_wp
 

Friends

class SBAddress
 
class SBBreakpoint
 
class SBBreakpointCallbackBaton
 
class SBBreakpointLocation
 
class SBCommandInterpreter
 
class SBDebugger
 
class SBExecutionContext
 
class SBFunction
 
class SBModule
 
class SBPlatform
 
class SBTarget
 
class SBThread
 
class SBValue
 
class lldb_private::QueueImpl
 
class lldb_private::python::SWIGBridge
 

Detailed Description

Definition at line 29 of file SBProcess.h.

Constructor & Destructor Documentation

◆ SBProcess() [1/3]

SBProcess::SBProcess ( )

Definition at line 53 of file SBProcess.cpp.

References LLDB_INSTRUMENT_VA.

Referenced by GetProcessFromEvent().

◆ SBProcess() [2/3]

SBProcess::SBProcess ( const lldb::SBProcess rhs)

Definition at line 57 of file SBProcess.cpp.

References LLDB_INSTRUMENT_VA.

◆ ~SBProcess()

SBProcess::~SBProcess ( )
default

◆ SBProcess() [3/3]

SBProcess::SBProcess ( const lldb::ProcessSP process_sp)
protected

Definition at line 61 of file SBProcess.cpp.

References LLDB_INSTRUMENT_VA.

Member Function Documentation

◆ AllocateMemory()

lldb::addr_t SBProcess::AllocateMemory ( size_t  size,
uint32_t  permissions,
lldb::SBError error 
)

Allocate memory within the process.

This function will allocate memory in the process's address space.

Parameters
[in]sizeThe size of the allocation requested.
[in]permissionsOr together any of the lldb::Permissions bits. The permissions on a given memory allocation can't be changed after allocation. Note that a block that isn't set writable can still be written from lldb, just not by the process itself.
[out]errorAn error object that gets filled in with any errors that might occur when trying allocate.
Returns
The address of the allocated buffer in the process, or LLDB_INVALID_ADDRESS if the allocation failed.

Definition at line 1350 of file SBProcess.cpp.

References GetSP(), LLDB_INSTRUMENT_VA, LLDB_INVALID_ADDRESS, lldb::SBError::ref(), lldb::SBError::SetErrorString(), and lldb_private::ProcessRunLock::ProcessRunLocker::TryLock().

◆ AppendEventStateReport()

void SBProcess::AppendEventStateReport ( const lldb::SBEvent event,
lldb::SBCommandReturnObject result 
)

◆ Clear()

void SBProcess::Clear ( )

Definition at line 107 of file SBProcess.cpp.

References LLDB_INSTRUMENT_VA, and m_opaque_wp.

◆ Continue()

SBError SBProcess::Continue ( )

◆ CreateOSPluginThread()

SBThread SBProcess::CreateOSPluginThread ( lldb::tid_t  tid,
lldb::addr_t  context 
)

Definition at line 217 of file SBProcess.cpp.

References GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBThread::SetThread().

◆ DeallocateMemory()

lldb::SBError SBProcess::DeallocateMemory ( lldb::addr_t  ptr)

Deallocate memory in the process.

This function will deallocate memory in the process's address space that was allocated with AllocateMemory.

Parameters
[in]ptrA return value from AllocateMemory, pointing to the memory you want to deallocate.
Returns
An error object describes any errors that occurred while deallocating.

Definition at line 1371 of file SBProcess.cpp.

References error(), GetSP(), LLDB_INSTRUMENT_VA, lldb::SBError::SetError(), lldb::SBError::SetErrorString(), and lldb_private::ProcessRunLock::ProcessRunLocker::TryLock().

◆ Destroy()

SBError SBProcess::Destroy ( )

◆ Detach() [1/2]

SBError SBProcess::Detach ( )

Definition at line 630 of file SBProcess.cpp.

References Detach(), and LLDB_INSTRUMENT_VA.

Referenced by Detach().

◆ Detach() [2/2]

SBError SBProcess::Detach ( bool  keep_stopped)

◆ EventIsProcessEvent()

bool SBProcess::EventIsProcessEvent ( const lldb::SBEvent event)
static

◆ EventIsStructuredDataEvent()

bool SBProcess::EventIsStructuredDataEvent ( const lldb::SBEvent event)
static

◆ FixAddress()

addr_t SBProcess::FixAddress ( lldb::addr_t  addr,
lldb::AddressMaskType  type = lldb::eAddressMaskTypeAny 
)

Clear the non-address bits of an addr value and return a virtual address in memory.

Bits that are not used in addressing may be used for other purposes; pointer authentication, or metadata in the top byte, or the 0th bit of armv7 code addresses to indicate arm/thumb are common examples.

Parameters
[in]addrThe address that should be cleared of non-address bits.
[in]typeSee Mask Address Methods description of this argument. eAddressMaskTypeAny is the default value, correct when it is unknown if the address is a code or data address.

Definition at line 1336 of file SBProcess.cpp.

References lldb::eAddressMaskTypeAny, lldb::eAddressMaskTypeCode, lldb::eAddressMaskTypeData, GetSP(), and LLDB_INSTRUMENT_VA.

◆ FLAGS_ANONYMOUS_ENUM()

lldb::SBProcess::FLAGS_ANONYMOUS_ENUM ( )
inline

Broadcaster event bits definitions.

Definition at line 32 of file SBProcess.h.

◆ ForceScriptedState()

void SBProcess::ForceScriptedState ( StateType  new_state)

If the process is a scripted process, changes its state to the new state.

No-op otherwise.

Parameters
[in]new_stateThe new state that the scripted process should be set to.

Definition at line 470 of file SBProcess.cpp.

References GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetAddressByteSize()

uint32_t SBProcess::GetAddressByteSize ( ) const

Definition at line 553 of file SBProcess.cpp.

References GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetAddressMask()

addr_t SBProcess::GetAddressMask ( lldb::AddressMaskType  type,
lldb::AddressMaskRange  addr_range = lldb::eAddressMaskRangeLow 
)

Get the current address mask that will be applied to addresses before reading from memory.

\group Mask Address Methods

type All of the methods in this group take type argument which is an AddressMaskType enum value. There can be different address masks for code addresses and data addresses, this argument can select which to get/set, or to use when clearing non-addressable bits from an address. This choice of mask can be important for example on AArch32 systems. Where instructions where instructions start on even addresses, the 0th bit may be used to indicate that a function is thumb code. On such a target, the eAddressMaskTypeCode may clear the 0th bit from an address to get the actual address Whereas eAddressMaskTypeData would not.

addr_range Many of the methods in this group take an addr_range argument which is an AddressMaskRange enum value. Needing to specify the address range is highly unusual, and the default argument can be used in nearly all circumstances. On some architectures (e.g., AArch64), it is possible to have different page table setups for low and high memory, so different numbers of bits relevant to addressing. It is possible to have a program running in one half of memory and accessing the other as heap, so we need to maintain two different sets of address masks to debug this correctly.

Parameters
[in]typeSee Mask Address Methods description of this argument. eAddressMaskTypeAny is often a suitable value when code and data masks are the same on a given target.
[in]addr_rangeSee Mask Address Methods description of this argument. This will default to eAddressMaskRangeLow which is the only set of masks used normally.
Returns
The address mask currently in use. Bits which are not used for addressing will be set to 1 in the mask.

Definition at line 1258 of file SBProcess.cpp.

References lldb::eAddressMaskRangeHigh, lldb::eAddressMaskTypeAny, lldb::eAddressMaskTypeCode, lldb::eAddressMaskTypeData, GetSP(), LLDB_INSTRUMENT_VA, and LLDB_INVALID_ADDRESS_MASK.

◆ GetAsyncProfileData()

size_t SBProcess::GetAsyncProfileData ( char *  dst,
size_t  dst_len 
) const

Definition at line 287 of file SBProcess.cpp.

References error(), GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetBroadcaster()

SBBroadcaster SBProcess::GetBroadcaster ( ) const

Definition at line 797 of file SBProcess.cpp.

References GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetBroadcasterClass()

const char * SBProcess::GetBroadcasterClass ( )
static

◆ GetBroadcasterClassName()

const char * SBProcess::GetBroadcasterClassName ( )
static

◆ GetByteOrder()

ByteOrder SBProcess::GetByteOrder ( ) const

Definition at line 541 of file SBProcess.cpp.

References lldb::eByteOrderInvalid, GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetCoreFile()

lldb::SBFileSpec SBProcess::GetCoreFile ( )

Get the file specification for the core file that is currently being used for the process.

If the process is not loaded from a core file, then an invalid file specification will be returned.

Returns
The path to the core file for this target or an invalid file spec if the process isn't loaded from a core file.

Definition at line 1247 of file SBProcess.cpp.

References GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetDescription()

bool SBProcess::GetDescription ( lldb::SBStream description)

◆ GetExitDescription()

const char * SBProcess::GetExitDescription ( )

◆ GetExitStatus()

int SBProcess::GetExitStatus ( )

Definition at line 494 of file SBProcess.cpp.

References GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetExtendedBacktraceTypeAtIndex()

const char * SBProcess::GetExtendedBacktraceTypeAtIndex ( uint32_t  idx)

Return the name of one of the thread-origin extended backtrace methods.

Parameters
[in]idxThe index of the name to return. They will be returned in the order that the user will most likely want to see them. e.g. if the type at index 0 is not available for a thread, see if the type at index 1 provides an extended backtrace.
Returns
The name at that index.

Definition at line 1115 of file SBProcess.cpp.

References lldb_private::SystemRuntime::GetExtendedBacktraceTypes(), GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetExtendedCrashInformation()

SBStructuredData SBProcess::GetExtendedCrashInformation ( )

Definition at line 955 of file SBProcess.cpp.

References GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBStructuredData::m_impl_up.

◆ GetHistoryThreads()

SBThreadCollection SBProcess::GetHistoryThreads ( addr_t  addr)

Definition at line 1130 of file SBProcess.cpp.

References GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetInterruptedFromEvent()

bool SBProcess::GetInterruptedFromEvent ( const lldb::SBEvent event)
static

◆ GetMemoryRegionInfo()

lldb::SBError SBProcess::GetMemoryRegionInfo ( lldb::addr_t  load_addr,
lldb::SBMemoryRegionInfo region_info 
)

Query the address load_addr and store the details of the memory region that contains it in the supplied SBMemoryRegionInfo object.

To iterate over all memory regions use GetMemoryRegionList.

Parameters
[in]load_addrThe address to be queried.
[out]region_infoA reference to an SBMemoryRegionInfo object that will contain the details of the memory region containing load_addr.
Returns
An error object describes any errors that occurred while querying load_addr.

Definition at line 1195 of file SBProcess.cpp.

References GetSP(), LLDB_INSTRUMENT_VA, lldb::SBError::ref(), lldb::SBMemoryRegionInfo::ref(), lldb::SBError::SetErrorString(), and lldb_private::ProcessRunLock::ProcessRunLocker::TryLock().

◆ GetMemoryRegions()

lldb::SBMemoryRegionInfoList SBProcess::GetMemoryRegions ( )

Return the list of memory regions within the process.

Returns
A list of all witin the process memory regions.

Definition at line 1218 of file SBProcess.cpp.

References GetSP(), LLDB_INSTRUMENT_VA, lldb::SBMemoryRegionInfoList::ref(), and lldb_private::ProcessRunLock::ProcessRunLocker::TryLock().

◆ GetNumExtendedBacktraceTypes()

uint32_t SBProcess::GetNumExtendedBacktraceTypes ( )

Return the number of different thread-origin extended backtraces this process can support.

When the process is stopped and you have an SBThread, lldb may be able to show a backtrace of when that thread was originally created, or the work item was enqueued to it (in the case of a libdispatch queue).

Returns
The number of thread-origin extended backtrace types that may be available.

Definition at line 1104 of file SBProcess.cpp.

References lldb_private::SystemRuntime::GetExtendedBacktraceTypes(), GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetNumQueues()

uint32_t SBProcess::GetNumQueues ( )

◆ GetNumRestartedReasonsFromEvent()

size_t SBProcess::GetNumRestartedReasonsFromEvent ( const lldb::SBEvent event)
static

◆ GetNumSupportedHardwareWatchpoints()

uint32_t SBProcess::GetNumSupportedHardwareWatchpoints ( lldb::SBError error) const

Definition at line 979 of file SBProcess.cpp.

References GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBError::SetErrorString().

◆ GetNumThreads()

uint32_t SBProcess::GetNumThreads ( )

◆ GetPluginName()

const char * SBProcess::GetPluginName ( )

◆ GetProcessFromEvent()

SBProcess SBProcess::GetProcessFromEvent ( const lldb::SBEvent event)
static

◆ GetProcessID()

lldb::pid_t SBProcess::GetProcessID ( )

Gets the process ID.

Returns the process identifier for the process as it is known on the system on which the process is running. For unix systems this is typically the same as if you called "getpid()" in the process.

Returns
Returns LLDB_INVALID_PROCESS_ID if this object does not contain a valid process object, or if the process has not been launched. Returns a valid process ID if the process is valid.

Definition at line 520 of file SBProcess.cpp.

References GetSP(), LLDB_INSTRUMENT_VA, and LLDB_INVALID_PROCESS_ID.

◆ GetProcessInfo()

lldb::SBProcessInfo SBProcess::GetProcessInfo ( )

Return information about the process.

Valid process info will only be returned when the process is alive, use SBProcessInfo::IsValid() to check returned info is valid.

Definition at line 1235 of file SBProcess.cpp.

References GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBProcessInfo::SetProcessInfo().

◆ GetQueueAtIndex()

SBQueue SBProcess::GetQueueAtIndex ( size_t  index)

◆ GetRestartedFromEvent()

bool SBProcess::GetRestartedFromEvent ( const lldb::SBEvent event)
static

◆ GetRestartedReasonAtIndexFromEvent()

const char * SBProcess::GetRestartedReasonAtIndexFromEvent ( const lldb::SBEvent event,
size_t  idx 
)
static

◆ GetScriptedImplementation()

lldb::SBScriptObject SBProcess::GetScriptedImplementation ( )

Definition at line 1392 of file SBProcess.cpp.

References lldb::eScriptLanguageDefault, GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetSelectedThread()

SBThread SBProcess::GetSelectedThread ( ) const

Definition at line 201 of file SBProcess.cpp.

References GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBThread::SetThread().

◆ GetSP()

lldb::ProcessSP SBProcess::GetSP ( ) const
protected

Definition at line 103 of file SBProcess.cpp.

References m_opaque_wp.

Referenced by AllocateMemory(), AppendEventStateReport(), Continue(), CreateOSPluginThread(), DeallocateMemory(), Destroy(), Detach(), FixAddress(), ForceScriptedState(), GetAddressByteSize(), GetAddressMask(), GetAsyncProfileData(), GetBroadcaster(), GetByteOrder(), GetCoreFile(), GetDescription(), GetExitDescription(), GetExitStatus(), GetExtendedBacktraceTypeAtIndex(), GetExtendedCrashInformation(), GetHistoryThreads(), GetMemoryRegionInfo(), GetMemoryRegions(), GetNumExtendedBacktraceTypes(), GetNumQueues(), GetNumSupportedHardwareWatchpoints(), GetNumThreads(), GetPluginName(), GetProcessID(), GetProcessInfo(), GetQueueAtIndex(), GetScriptedImplementation(), GetSelectedThread(), GetState(), GetSTDERR(), GetSTDOUT(), GetStopEventForStopID(), GetStopID(), GetTarget(), GetThreadAtIndex(), GetThreadByID(), GetThreadByIndexID(), GetUniqueID(), GetUnixSignals(), lldb::SBDebugger::HandleCommand(), IsInstrumentationRuntimePresent(), Kill(), LoadImage(), LoadImageUsingPaths(), PutSTDIN(), ReadCStringFromMemory(), ReadMemory(), ReadPointerFromMemory(), ReadUnsignedFromMemory(), RemoteAttachToProcessWithID(), RemoteLaunch(), ReportEventState(), SaveCore(), lldb::SBExecutionContext::SBExecutionContext(), lldb::SBModule::SBModule(), SendAsyncInterrupt(), SendEventData(), SetAddressMask(), SetSelectedThread(), SetSelectedThreadByID(), SetSelectedThreadByIndexID(), Signal(), Stop(), UnloadImage(), and WriteMemory().

◆ GetState()

StateType SBProcess::GetState ( )

Definition at line 480 of file SBProcess.cpp.

References lldb::eStateInvalid, GetSP(), and LLDB_INSTRUMENT_VA.

Referenced by GetDescription().

◆ GetStateFromEvent()

StateType SBProcess::GetStateFromEvent ( const lldb::SBEvent event)
static

◆ GetSTDERR()

size_t SBProcess::GetSTDERR ( char *  dst,
size_t  dst_len 
) const

Definition at line 274 of file SBProcess.cpp.

References error(), GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetSTDOUT()

size_t SBProcess::GetSTDOUT ( char *  dst,
size_t  dst_len 
) const

Definition at line 261 of file SBProcess.cpp.

References error(), GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetStopEventForStopID()

SBEvent SBProcess::GetStopEventForStopID ( uint32_t  stop_id)

Gets the stop event corresponding to stop ID.

Note that it wasn't fully implemented and tracks only the stop event for the last natural stop ID.

Parameters
[in]stop_idThe ID of the stop event to return.
Returns
The stop event corresponding to stop ID.

Definition at line 454 of file SBProcess.cpp.

References GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBEvent::reset().

◆ GetStopID()

uint32_t SBProcess::GetStopID ( bool  include_expression_stops = false)

Definition at line 439 of file SBProcess.cpp.

References GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetStructuredDataFromEvent()

lldb::SBStructuredData SBProcess::GetStructuredDataFromEvent ( const lldb::SBEvent event)
static

Definition at line 775 of file SBProcess.cpp.

References lldb::SBEvent::GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetTarget()

SBTarget SBProcess::GetTarget ( ) const

Definition at line 234 of file SBProcess.cpp.

References GetSP(), LLDB_INSTRUMENT_VA, and lldb::SBTarget::SetSP().

Referenced by GetDescription().

◆ GetThreadAtIndex()

SBThread SBProcess::GetThreadAtIndex ( size_t  index)

◆ GetThreadByID()

SBThread SBProcess::GetThreadByID ( lldb::tid_t  sb_thread_id)

◆ GetThreadByIndexID()

SBThread SBProcess::GetThreadByIndexID ( uint32_t  index_id)

◆ GetUniqueID()

uint32_t SBProcess::GetUniqueID ( )

Gets the unique ID associated with this process object.

Unique IDs start at 1 and increment up with each new process instance. Since starting a process on a system might always create a process with the same process ID, there needs to be a way to tell two process instances apart.

Returns
Returns a non-zero integer ID if this object contains a valid process object, zero if this object does not contain a valid process object.

Definition at line 531 of file SBProcess.cpp.

References GetSP(), and LLDB_INSTRUMENT_VA.

◆ GetUnixSignals()

SBUnixSignals SBProcess::GetUnixSignals ( )

Definition at line 668 of file SBProcess.cpp.

References GetSP(), and LLDB_INSTRUMENT_VA.

◆ IsInstrumentationRuntimePresent()

bool SBProcess::IsInstrumentationRuntimePresent ( InstrumentationRuntimeType  type)

Definition at line 1141 of file SBProcess.cpp.

References GetSP(), and LLDB_INSTRUMENT_VA.

◆ IsValid()

bool SBProcess::IsValid ( ) const

Definition at line 113 of file SBProcess.cpp.

References LLDB_INSTRUMENT_VA.

◆ Kill()

SBError SBProcess::Kill ( )

◆ LLDB_DEPRECATED_FIXME()

lldb::SBProcess::LLDB_DEPRECATED_FIXME ( "Use GetPluginName()"  ,
"GetPluginName()"   
) const

◆ LoadImage() [1/2]

uint32_t SBProcess::LoadImage ( const lldb::SBFileSpec local_image_spec,
const lldb::SBFileSpec remote_image_spec,
lldb::SBError error 
)

Load a shared library into this process.

Parameters
[in]local_image_specThe file spec that points to the shared library that you want to load if the library is located on the host. The library will be copied over to the location specified by remote_image_spec or into the current working directory with the same filename if the remote_image_spec isn't specified.
[in]remote_image_specIf local_image_spec is specified then the location where the library should be copied over from the host. If local_image_spec isn't specified, then the path for the shared library on the target what you want to load.
[out]errorAn error object that gets filled in with any errors that might occur when trying to load the shared library.
Returns
A token that represents the shared library that can be later used to unload the shared library. A value of LLDB_INVALID_IMAGE_TOKEN will be returned if the shared library can't be opened.

Definition at line 1006 of file SBProcess.cpp.

References GetSP(), LLDB_INSTRUMENT_VA, LLDB_INVALID_IMAGE_TOKEN, lldb::SBError::ref(), lldb::SBError::SetErrorString(), and lldb_private::ProcessRunLock::ProcessRunLocker::TryLock().

◆ LoadImage() [2/2]

uint32_t SBProcess::LoadImage ( lldb::SBFileSpec remote_image_spec,
lldb::SBError error 
)

Load a shared library into this process.

Parameters
[in]remote_image_specThe path for the shared library on the target what you want to load.
[out]errorAn error object that gets filled in with any errors that might occur when trying to load the shared library.
Returns
A token that represents the shared library that can be later used to unload the shared library. A value of LLDB_INVALID_IMAGE_TOKEN will be returned if the shared library can't be opened.

Definition at line 999 of file SBProcess.cpp.

References LLDB_INSTRUMENT_VA, and LoadImage().

Referenced by LoadImage().

◆ LoadImageUsingPaths()

uint32_t SBProcess::LoadImageUsingPaths ( const lldb::SBFileSpec image_spec,
SBStringList paths,
lldb::SBFileSpec loaded_path,
lldb::SBError error 
)

Load a shared library into this process, starting with a library name and a list of paths, searching along the list of paths till you find a matching library.

Parameters
[in]image_specThe name of the shared library that you want to load. If image_spec is a relative path, the relative path will be appended to the search paths. If the image_spec is an absolute path, just the basename is used.
[in]pathsA list of paths to search for the library whose basename is local_spec.
[out]loaded_pathIf the library was found along the paths, this will store the full path to the found library.
[out]errorAn error object that gets filled in with any errors that might occur when trying to search for the shared library.
Returns
A token that represents the shared library that can be later passed to UnloadImage. A value of LLDB_INVALID_IMAGE_TOKEN will be returned if the shared library can't be opened.

Definition at line 1029 of file SBProcess.cpp.

References error(), lldb::SBStringList::GetSize(), GetSP(), lldb::SBStringList::GetStringAtIndex(), LLDB_INSTRUMENT_VA, LLDB_INVALID_IMAGE_TOKEN, and lldb_private::ProcessRunLock::ProcessRunLocker::TryLock().

◆ operator bool()

SBProcess::operator bool ( ) const
explicit

Definition at line 117 of file SBProcess.cpp.

References LLDB_INSTRUMENT_VA.

◆ operator=()

const SBProcess & SBProcess::operator= ( const lldb::SBProcess rhs)

Definition at line 66 of file SBProcess.cpp.

References LLDB_INSTRUMENT_VA, and m_opaque_wp.

◆ PutSTDIN()

size_t SBProcess::PutSTDIN ( const char *  src,
size_t  src_len 
)

Definition at line 248 of file SBProcess.cpp.

References error(), GetSP(), and LLDB_INSTRUMENT_VA.

◆ ReadCStringFromMemory()

size_t SBProcess::ReadCStringFromMemory ( addr_t  addr,
void *  char_buf,
size_t  size,
lldb::SBError error 
)

◆ ReadMemory()

size_t SBProcess::ReadMemory ( addr_t  addr,
void *  buf,
size_t  size,
lldb::SBError error 
)

◆ ReadPointerFromMemory()

lldb::addr_t SBProcess::ReadPointerFromMemory ( addr_t  addr,
lldb::SBError error 
)

◆ ReadUnsignedFromMemory()

uint64_t SBProcess::ReadUnsignedFromMemory ( addr_t  addr,
uint32_t  byte_size,
lldb::SBError error 
)

◆ RemoteAttachToProcessWithID()

bool SBProcess::RemoteAttachToProcessWithID ( lldb::pid_t  pid,
lldb::SBError error 
)

Remote connection related functions.

These will fail if the process is not in eStateConnected. They are intended for use when connecting to an externally managed debugserver instance.

Definition at line 161 of file SBProcess.cpp.

References error(), lldb::eStateConnected, GetSP(), LLDB_INSTRUMENT_VA, and lldb_private::ProcessInfo::SetProcessID().

◆ RemoteLaunch()

bool SBProcess::RemoteLaunch ( char const **  argv,
char const **  envp,
const char *  stdin_path,
const char *  stdout_path,
const char *  stderr_path,
const char *  working_directory,
uint32_t  launch_flags,
bool  stop_at_entry,
lldb::SBError error 
)

◆ ReportEventState() [1/3]

void SBProcess::ReportEventState ( const lldb::SBEvent event,
FILE *  out 
) const

Definition at line 306 of file SBProcess.cpp.

References LLDB_INSTRUMENT_VA, and ReportEventState().

Referenced by ReportEventState().

◆ ReportEventState() [2/3]

void SBProcess::ReportEventState ( const lldb::SBEvent event,
FileSP  BORROWED 
) const

◆ ReportEventState() [3/3]

void SBProcess::ReportEventState ( const lldb::SBEvent event,
SBFile  file 
) const

Definition at line 300 of file SBProcess.cpp.

References LLDB_INSTRUMENT_VA, lldb::SBFile::m_opaque_sp, and ReportEventState().

◆ SaveCore() [1/2]

lldb::SBError SBProcess::SaveCore ( const char *  file_name)

Save the state of the process with the a flavor that matches the current process' main executable (if supported).

Parameters
[in]file_name- The name of the file to save the core file to.

Definition at line 1161 of file SBProcess.cpp.

References lldb::eSaveCoreFull, LLDB_INSTRUMENT_VA, and SaveCore().

◆ SaveCore() [2/2]

lldb::SBError SBProcess::SaveCore ( const char *  file_name,
const char *  flavor,
SaveCoreStyle  core_style 
)

Save the state of the process in a core file.

Parameters
[in]file_name- The name of the file to save the core file to.
[in]flavor- Specify the flavor of a core file plug-in to save. Currently supported flavors include "mach-o" and "minidump"
[in]core_style- Specify the style of a core file to save.

Definition at line 1166 of file SBProcess.cpp.

References error(), lldb::eStateStopped, GetSP(), lldb_private::FileSystem::Instance(), LLDB_INSTRUMENT_VA, lldb_private::FileSystem::Resolve(), and lldb_private::PluginManager::SaveCore().

Referenced by SaveCore().

◆ SendAsyncInterrupt()

void SBProcess::SendAsyncInterrupt ( )

Definition at line 677 of file SBProcess.cpp.

References GetSP(), and LLDB_INSTRUMENT_VA.

◆ SendEventData()

lldb::SBError SBProcess::SendEventData ( const char *  data)

◆ SetAddressableBits()

void SBProcess::SetAddressableBits ( AddressMaskType  type,
uint32_t  num_bits,
AddressMaskRange  addr_range = lldb::eAddressMaskRangeLow 
)

Set the number of bits used for addressing in this Process.

On Darwin and similar systems, the addressable bits are expressed as the number of low order bits that are relevant to addressing, instead of a more general address mask. This method calculates the correct mask value for a given number of low order addressable bits.

Parameters
[in]typeSee Mask Address Methods description of this argument. eAddressMaskTypeAll is often a suitable value when the same mask is being set for both code and data.
[in]num_bitsNumber of bits that are used for addressing. For example, a value of 42 indicates that the low 42 bits are relevant for addressing, and that higher-order bits may be used for various metadata like pointer authentication, Type Byte Ignore, etc.
[in]addr_rangeSee Mask Address Methods description of this argument. This will default to eAddressMaskRangeLow which is the only set of masks used normally.

Definition at line 1328 of file SBProcess.cpp.

References lldb_private::AddressableBits::AddressableBitToMask(), LLDB_INSTRUMENT_VA, and SetAddressMask().

◆ SetAddressMask()

void SBProcess::SetAddressMask ( lldb::AddressMaskType  type,
lldb::addr_t  mask,
lldb::AddressMaskRange  addr_range = lldb::eAddressMaskRangeLow 
)

Set the current address mask that can be applied to addresses before reading from memory.

Parameters
[in]typeSee Mask Address Methods description of this argument. eAddressMaskTypeAll is often a suitable value when the same mask is being set for both code and data.
[in]maskThe address mask to set. Bits which are not used for addressing should be set to 1 in the mask.
[in]addr_rangeSee Mask Address Methods description of this argument. This will default to eAddressMaskRangeLow which is the only set of masks used normally.

Definition at line 1284 of file SBProcess.cpp.

References lldb::eAddressMaskRangeAll, lldb::eAddressMaskRangeHigh, lldb::eAddressMaskTypeAll, lldb::eAddressMaskTypeCode, lldb::eAddressMaskTypeData, GetSP(), and LLDB_INSTRUMENT_VA.

Referenced by SetAddressableBits().

◆ SetSelectedThread()

bool SBProcess::SetSelectedThread ( const lldb::SBThread thread)

Definition at line 343 of file SBProcess.cpp.

References GetSP(), lldb::SBThread::GetThreadID(), and LLDB_INSTRUMENT_VA.

◆ SetSelectedThreadByID()

bool SBProcess::SetSelectedThreadByID ( lldb::tid_t  tid)

Definition at line 356 of file SBProcess.cpp.

References GetSP(), and LLDB_INSTRUMENT_VA.

◆ SetSelectedThreadByIndexID()

bool SBProcess::SetSelectedThreadByIndexID ( uint32_t  index_id)

Definition at line 370 of file SBProcess.cpp.

References GetSP(), and LLDB_INSTRUMENT_VA.

◆ SetSP()

void SBProcess::SetSP ( const lldb::ProcessSP process_sp)
protected

◆ Signal()

SBError SBProcess::Signal ( int  signal)

◆ Stop()

SBError SBProcess::Stop ( )

◆ UnloadImage()

lldb::SBError SBProcess::UnloadImage ( uint32_t  image_token)

◆ WriteMemory()

size_t SBProcess::WriteMemory ( addr_t  addr,
const void *  buf,
size_t  size,
lldb::SBError error 
)

Friends And Related Function Documentation

◆ lldb_private::python::SWIGBridge

friend class lldb_private::python::SWIGBridge
friend

Definition at line 581 of file SBProcess.h.

◆ lldb_private::QueueImpl

friend class lldb_private::QueueImpl
friend

Definition at line 579 of file SBProcess.h.

◆ SBAddress

friend class SBAddress
friend

Definition at line 566 of file SBProcess.h.

◆ SBBreakpoint

friend class SBBreakpoint
friend

Definition at line 567 of file SBProcess.h.

◆ SBBreakpointCallbackBaton

friend class SBBreakpointCallbackBaton
friend

Definition at line 568 of file SBProcess.h.

◆ SBBreakpointLocation

friend class SBBreakpointLocation
friend

Definition at line 569 of file SBProcess.h.

◆ SBCommandInterpreter

friend class SBCommandInterpreter
friend

Definition at line 570 of file SBProcess.h.

◆ SBDebugger

friend class SBDebugger
friend

Definition at line 571 of file SBProcess.h.

◆ SBExecutionContext

friend class SBExecutionContext
friend

Definition at line 572 of file SBProcess.h.

◆ SBFunction

friend class SBFunction
friend

Definition at line 573 of file SBProcess.h.

◆ SBModule

friend class SBModule
friend

Definition at line 574 of file SBProcess.h.

◆ SBPlatform

friend class SBPlatform
friend

Definition at line 575 of file SBProcess.h.

◆ SBTarget

friend class SBTarget
friend

Definition at line 576 of file SBProcess.h.

◆ SBThread

friend class SBThread
friend

Definition at line 577 of file SBProcess.h.

◆ SBValue

friend class SBValue
friend

Definition at line 578 of file SBProcess.h.

Member Data Documentation

◆ m_opaque_wp

lldb::ProcessWP lldb::SBProcess::m_opaque_wp
protected

Definition at line 589 of file SBProcess.h.

Referenced by Clear(), GetSP(), operator=(), and SetSP().


The documentation for this class was generated from the following files: