LLDB mainline
lldb_private::MemoryRegionInfo Class Reference

#include <MemoryRegionInfo.h>

Public Types

typedef Range< lldb::addr_t, lldb::addr_tRangeType

Public Member Functions

 MemoryRegionInfo ()=default
 MemoryRegionInfo (RangeType range, LazyBool read, LazyBool write, LazyBool execute, LazyBool shared, LazyBool mapped, ConstString name)
RangeTypeGetRange ()
void Clear ()
const RangeTypeGetRange () const
LazyBool GetReadable () const
LazyBool GetWritable () const
LazyBool GetExecutable () const
LazyBool GetShared () const
LazyBool GetMapped () const
ConstString GetName () const
LazyBool GetMemoryTagged () const
LazyBool IsShadowStack () const
std::optional< unsigned > GetProtectionKey () const
void SetReadable (LazyBool val)
void SetWritable (LazyBool val)
void SetExecutable (LazyBool val)
void SetShared (LazyBool val)
void SetMapped (LazyBool val)
void SetName (const char *name)
LazyBool GetFlash () const
void SetFlash (LazyBool val)
lldb::offset_t GetBlocksize () const
void SetBlocksize (lldb::offset_t blocksize)
MemoryRegionInfoSetMemoryTagged (LazyBool val)
MemoryRegionInfoSetIsShadowStack (LazyBool val)
MemoryRegionInfoSetProtectionKey (std::optional< unsigned > key)
uint32_t GetLLDBPermissions () const
void SetLLDBPermissions (uint32_t permissions)
bool operator== (const MemoryRegionInfo &rhs) const
bool operator!= (const MemoryRegionInfo &rhs) const
int GetPageSize () const
 Get the target system's VM page size in bytes.
const std::optional< std::vector< lldb::addr_t > > & GetDirtyPageList () const
 Get a vector of target VM pages that are dirty – that have been modified – within this memory region.
LazyBool IsStackMemory () const
void SetIsStackMemory (LazyBool val)
void SetPageSize (int pagesize)
void SetDirtyPageList (std::vector< lldb::addr_t > pagelist)

Protected Attributes

RangeType m_range
LazyBool m_read = eLazyBoolDontKnow
LazyBool m_write = eLazyBoolDontKnow
LazyBool m_execute = eLazyBoolDontKnow
LazyBool m_shared = eLazyBoolDontKnow
LazyBool m_mapped = eLazyBoolDontKnow
ConstString m_name
LazyBool m_flash = eLazyBoolDontKnow
lldb::offset_t m_blocksize = 0
LazyBool m_memory_tagged = eLazyBoolDontKnow
LazyBool m_is_stack_memory = eLazyBoolDontKnow
LazyBool m_is_shadow_stack = eLazyBoolDontKnow
std::optional< unsigned > m_protection_key = std::nullopt
int m_pagesize = 0
std::optional< std::vector< lldb::addr_t > > m_dirty_pages

Detailed Description

Definition at line 21 of file MemoryRegionInfo.h.

Member Typedef Documentation

◆ RangeType

Constructor & Destructor Documentation

◆ MemoryRegionInfo() [1/2]

lldb_private::MemoryRegionInfo::MemoryRegionInfo ( )
default

◆ MemoryRegionInfo() [2/2]

lldb_private::MemoryRegionInfo::MemoryRegionInfo ( RangeType range,
LazyBool read,
LazyBool write,
LazyBool execute,
LazyBool shared,
LazyBool mapped,
ConstString name )
inline

Definition at line 26 of file MemoryRegionInfo.h.

References m_execute, m_mapped, m_name, m_range, m_read, m_shared, and m_write.

Member Function Documentation

◆ Clear()

◆ GetBlocksize()

◆ GetDirtyPageList()

const std::optional< std::vector< lldb::addr_t > > & lldb_private::MemoryRegionInfo::GetDirtyPageList ( ) const
inline

Get a vector of target VM pages that are dirty – that have been modified – within this memory region.

This is an Optional return value; it will only be available if the remote stub was able to detail this.

Definition at line 139 of file MemoryRegionInfo.h.

References m_dirty_pages.

Referenced by AddDirtyPages(), and CommandObjectMemoryRegion::DumpRegion().

◆ GetExecutable()

◆ GetFlash()

LazyBool lldb_private::MemoryRegionInfo::GetFlash ( ) const
inline

◆ GetLLDBPermissions()

uint32_t lldb_private::MemoryRegionInfo::GetLLDBPermissions ( ) const
inline

◆ GetMapped()

◆ GetMemoryTagged()

LazyBool lldb_private::MemoryRegionInfo::GetMemoryTagged ( ) const
inline

◆ GetName()

◆ GetPageSize()

int lldb_private::MemoryRegionInfo::GetPageSize ( ) const
inline

Get the target system's VM page size in bytes.

Returns
0 is returned if this information is unavailable.

Definition at line 133 of file MemoryRegionInfo.h.

References m_pagesize.

Referenced by AddDirtyPages().

◆ GetProtectionKey()

std::optional< unsigned > lldb_private::MemoryRegionInfo::GetProtectionKey ( ) const
inline

◆ GetRange() [1/2]

RangeType & lldb_private::MemoryRegionInfo::GetRange ( )
inline

Definition at line 32 of file MemoryRegionInfo.h.

References m_range.

Referenced by lldb_private::SaveCoreOptions::AddMemoryRegionToSave(), AddRegion(), MinidumpFileBuilder::AddThreadList(), lldb_private::minidump::ProcessMinidump::BuildMemoryRegions(), CheckForLinuxExecutable(), CreateCoreFileMemoryRange(), CreateRegionsCacheFromMemoryInfoList(), CreateRegionsCacheFromMemoryList(), CommandObjectMemoryRegion::DoExecute(), ProcessElfCore::DoGetMemoryRegionInfo(), ProcessMachCore::DoGetMemoryRegionInfo(), lldb_private::process_gdb_remote::ProcessGDBRemote::DoWriteMemory(), CommandObjectMemoryRegion::DumpRegion(), lldb_private::Process::FindInMemory(), lldb_private::IRMemoryMap::FindSpace(), lldb_private::process_gdb_remote::ProcessGDBRemote::FlashErase(), lldb_private::minidump::MinidumpParser::GetMemoryRegionInfo(), lldb_private::Process::GetMemoryRegionInfo(), lldb_private::process_freebsd::NativeProcessFreeBSD::GetMemoryRegionInfo(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::GetMemoryRegionInfo(), lldb_private::process_linux::NativeProcessLinux::GetMemoryRegionInfo(), lldb_private::process_netbsd::NativeProcessNetBSD::GetMemoryRegionInfo(), lldb_private::ProcessDebugger::GetMemoryRegionInfo(), lldb_private::Process::GetMemoryRegions(), lldb_private::ScriptedProcess::GetMemoryRegions(), lldb_private::process_gdb_remote::GDBRemoteCommunicationServerLLGS::Handle_qMemoryRegionInfo(), Intersect(), DynamicLoaderPOSIXDYLD::LoadModuleAtAddress(), lldb_private::process_gdb_remote::GDBRemoteCommunicationClient::LoadQXferMemoryMap(), DynamicLoaderPOSIXDYLD::LoadVDSO(), lldb_private::operator<(), lldb_private::operator<(), lldb_private::operator<(), ParseMemoryRegionInfoFromProcMapsLine(), lldb_private::process_freebsd::NativeProcessFreeBSD::PopulateMemoryRegionCache(), lldb_private::process_netbsd::NativeProcessNetBSD::PopulateMemoryRegionCache(), lldb_private::ProcessDebugger::ReadMemory(), and SaveOffRegionsWithStackPointers().

◆ GetRange() [2/2]

const RangeType & lldb_private::MemoryRegionInfo::GetRange ( ) const
inline

Definition at line 36 of file MemoryRegionInfo.h.

References m_range.

◆ GetReadable()

◆ GetShared()

LazyBool lldb_private::MemoryRegionInfo::GetShared ( ) const
inline

Definition at line 44 of file MemoryRegionInfo.h.

References m_shared.

◆ GetWritable()

◆ IsShadowStack()

LazyBool lldb_private::MemoryRegionInfo::IsShadowStack ( ) const
inline

◆ IsStackMemory()

LazyBool lldb_private::MemoryRegionInfo::IsStackMemory ( ) const
inline

Definition at line 143 of file MemoryRegionInfo.h.

References m_is_stack_memory.

◆ operator!=()

bool lldb_private::MemoryRegionInfo::operator!= ( const MemoryRegionInfo & rhs) const
inline

Definition at line 128 of file MemoryRegionInfo.h.

References MemoryRegionInfo().

◆ operator==()

bool lldb_private::MemoryRegionInfo::operator== ( const MemoryRegionInfo & rhs) const
inline

◆ SetBlocksize()

◆ SetDirtyPageList()

void lldb_private::MemoryRegionInfo::SetDirtyPageList ( std::vector< lldb::addr_t > pagelist)
inline

◆ SetExecutable()

◆ SetFlash()

◆ SetIsShadowStack()

MemoryRegionInfo & lldb_private::MemoryRegionInfo::SetIsShadowStack ( LazyBool val)
inline

◆ SetIsStackMemory()

void lldb_private::MemoryRegionInfo::SetIsStackMemory ( LazyBool val)
inline

◆ SetLLDBPermissions()

void lldb_private::MemoryRegionInfo::SetLLDBPermissions ( uint32_t permissions)
inline

◆ SetMapped()

◆ SetMemoryTagged()

MemoryRegionInfo & lldb_private::MemoryRegionInfo::SetMemoryTagged ( LazyBool val)
inline

◆ SetName()

◆ SetPageSize()

void lldb_private::MemoryRegionInfo::SetPageSize ( int pagesize)
inline

◆ SetProtectionKey()

MemoryRegionInfo & lldb_private::MemoryRegionInfo::SetProtectionKey ( std::optional< unsigned > key)
inline

◆ SetReadable()

◆ SetShared()

void lldb_private::MemoryRegionInfo::SetShared ( LazyBool val)
inline

Definition at line 62 of file MemoryRegionInfo.h.

References m_shared.

Referenced by ParseMemoryRegionInfoFromProcMapsLine().

◆ SetWritable()

Member Data Documentation

◆ m_blocksize

lldb::offset_t lldb_private::MemoryRegionInfo::m_blocksize = 0
protected

Definition at line 164 of file MemoryRegionInfo.h.

Referenced by GetBlocksize(), operator==(), and SetBlocksize().

◆ m_dirty_pages

std::optional<std::vector<lldb::addr_t> > lldb_private::MemoryRegionInfo::m_dirty_pages
protected

Definition at line 170 of file MemoryRegionInfo.h.

Referenced by GetDirtyPageList(), and SetDirtyPageList().

◆ m_execute

LazyBool lldb_private::MemoryRegionInfo::m_execute = eLazyBoolDontKnow
protected

◆ m_flash

LazyBool lldb_private::MemoryRegionInfo::m_flash = eLazyBoolDontKnow
protected

Definition at line 163 of file MemoryRegionInfo.h.

Referenced by GetFlash(), operator==(), and SetFlash().

◆ m_is_shadow_stack

LazyBool lldb_private::MemoryRegionInfo::m_is_shadow_stack = eLazyBoolDontKnow
protected

Definition at line 167 of file MemoryRegionInfo.h.

Referenced by IsShadowStack(), operator==(), and SetIsShadowStack().

◆ m_is_stack_memory

LazyBool lldb_private::MemoryRegionInfo::m_is_stack_memory = eLazyBoolDontKnow
protected

Definition at line 166 of file MemoryRegionInfo.h.

Referenced by IsStackMemory(), operator==(), and SetIsStackMemory().

◆ m_mapped

LazyBool lldb_private::MemoryRegionInfo::m_mapped = eLazyBoolDontKnow
protected

Definition at line 161 of file MemoryRegionInfo.h.

Referenced by GetMapped(), MemoryRegionInfo(), operator==(), and SetMapped().

◆ m_memory_tagged

LazyBool lldb_private::MemoryRegionInfo::m_memory_tagged = eLazyBoolDontKnow
protected

Definition at line 165 of file MemoryRegionInfo.h.

Referenced by GetMemoryTagged(), operator==(), and SetMemoryTagged().

◆ m_name

ConstString lldb_private::MemoryRegionInfo::m_name
protected

Definition at line 162 of file MemoryRegionInfo.h.

Referenced by GetName(), MemoryRegionInfo(), operator==(), and SetName().

◆ m_pagesize

int lldb_private::MemoryRegionInfo::m_pagesize = 0
protected

Definition at line 169 of file MemoryRegionInfo.h.

Referenced by GetPageSize(), operator==(), and SetPageSize().

◆ m_protection_key

std::optional<unsigned> lldb_private::MemoryRegionInfo::m_protection_key = std::nullopt
protected

Definition at line 168 of file MemoryRegionInfo.h.

Referenced by GetProtectionKey(), operator==(), and SetProtectionKey().

◆ m_range

RangeType lldb_private::MemoryRegionInfo::m_range
protected

Definition at line 156 of file MemoryRegionInfo.h.

Referenced by GetRange(), GetRange(), MemoryRegionInfo(), and operator==().

◆ m_read

LazyBool lldb_private::MemoryRegionInfo::m_read = eLazyBoolDontKnow
protected

◆ m_shared

LazyBool lldb_private::MemoryRegionInfo::m_shared = eLazyBoolDontKnow
protected

Definition at line 160 of file MemoryRegionInfo.h.

Referenced by GetShared(), MemoryRegionInfo(), operator==(), and SetShared().

◆ m_write

LazyBool lldb_private::MemoryRegionInfo::m_write = eLazyBoolDontKnow
protected

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