LLDB mainline
lldb_private::MemoryRegionInfo Class Reference

#include <MemoryRegionInfo.h>

Public Types

enum  OptionalBool { eDontKnow = -1 , eNo = 0 , eYes = 1 }
typedef Range< lldb::addr_t, lldb::addr_tRangeType

Public Member Functions

 MemoryRegionInfo ()=default
 MemoryRegionInfo (RangeType range, OptionalBool read, OptionalBool write, OptionalBool execute, OptionalBool shared, OptionalBool mapped, ConstString name, OptionalBool flash, lldb::offset_t blocksize, OptionalBool memory_tagged, OptionalBool stack_memory, OptionalBool shadow_stack)
RangeTypeGetRange ()
void Clear ()
const RangeTypeGetRange () const
OptionalBool GetReadable () const
OptionalBool GetWritable () const
OptionalBool GetExecutable () const
OptionalBool GetShared () const
OptionalBool GetMapped () const
ConstString GetName () const
OptionalBool GetMemoryTagged () const
OptionalBool IsShadowStack () const
void SetReadable (OptionalBool val)
void SetWritable (OptionalBool val)
void SetExecutable (OptionalBool val)
void SetShared (OptionalBool val)
void SetMapped (OptionalBool val)
void SetName (const char *name)
OptionalBool GetFlash () const
void SetFlash (OptionalBool val)
lldb::offset_t GetBlocksize () const
void SetBlocksize (lldb::offset_t blocksize)
void SetMemoryTagged (OptionalBool val)
void SetIsShadowStack (OptionalBool val)
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.
OptionalBool IsStackMemory () const
void SetIsStackMemory (OptionalBool val)
void SetPageSize (int pagesize)
void SetDirtyPageList (std::vector< lldb::addr_t > pagelist)

Protected Attributes

RangeType m_range
OptionalBool m_read = eDontKnow
OptionalBool m_write = eDontKnow
OptionalBool m_execute = eDontKnow
OptionalBool m_shared = eDontKnow
OptionalBool m_mapped = eDontKnow
ConstString m_name
OptionalBool m_flash = eDontKnow
lldb::offset_t m_blocksize = 0
OptionalBool m_memory_tagged = eDontKnow
OptionalBool m_is_stack_memory = eDontKnow
OptionalBool m_is_shadow_stack = eDontKnow
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

Member Enumeration Documentation

◆ OptionalBool

Enumerator
eDontKnow 
eNo 
eYes 

Definition at line 25 of file MemoryRegionInfo.h.

Constructor & Destructor Documentation

◆ MemoryRegionInfo() [1/2]

lldb_private::MemoryRegionInfo::MemoryRegionInfo ( )
default

Referenced by Clear(), operator!=(), and operator==().

◆ MemoryRegionInfo() [2/2]

lldb_private::MemoryRegionInfo::MemoryRegionInfo ( RangeType range,
OptionalBool read,
OptionalBool write,
OptionalBool execute,
OptionalBool shared,
OptionalBool mapped,
ConstString name,
OptionalBool flash,
lldb::offset_t blocksize,
OptionalBool memory_tagged,
OptionalBool stack_memory,
OptionalBool shadow_stack )
inline

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 128 of file MemoryRegionInfo.h.

References m_dirty_pages.

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

◆ GetExecutable()

◆ GetFlash()

◆ GetLLDBPermissions()

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

◆ GetMapped()

◆ GetMemoryTagged()

OptionalBool 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 122 of file MemoryRegionInfo.h.

References m_pagesize.

Referenced by AddDirtyPages().

◆ GetRange() [1/2]

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

Definition at line 38 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 42 of file MemoryRegionInfo.h.

References m_range.

◆ GetReadable()

◆ GetShared()

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

Definition at line 50 of file MemoryRegionInfo.h.

References m_shared.

◆ GetWritable()

◆ IsShadowStack()

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

◆ IsStackMemory()

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

Definition at line 132 of file MemoryRegionInfo.h.

References m_is_stack_memory.

◆ operator!=()

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

Definition at line 117 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()

void lldb_private::MemoryRegionInfo::SetIsShadowStack ( OptionalBool val)
inline

◆ SetIsStackMemory()

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

◆ SetLLDBPermissions()

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

Definition at line 99 of file MemoryRegionInfo.h.

References eNo, eYes, m_execute, m_read, and m_write.

Referenced by ProcessMachCore::DoGetMemoryRegionInfo(), and Intersect().

◆ SetMapped()

◆ SetMemoryTagged()

void lldb_private::MemoryRegionInfo::SetMemoryTagged ( OptionalBool val)
inline

◆ SetName()

◆ SetPageSize()

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

◆ SetReadable()

◆ SetShared()

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

Definition at line 66 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 153 of file MemoryRegionInfo.h.

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

◆ m_dirty_pages

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

Definition at line 158 of file MemoryRegionInfo.h.

Referenced by GetDirtyPageList(), and SetDirtyPageList().

◆ m_execute

OptionalBool lldb_private::MemoryRegionInfo::m_execute = eDontKnow
protected

◆ m_flash

OptionalBool lldb_private::MemoryRegionInfo::m_flash = eDontKnow
protected

Definition at line 152 of file MemoryRegionInfo.h.

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

◆ m_is_shadow_stack

OptionalBool lldb_private::MemoryRegionInfo::m_is_shadow_stack = eDontKnow
protected

Definition at line 156 of file MemoryRegionInfo.h.

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

◆ m_is_stack_memory

OptionalBool lldb_private::MemoryRegionInfo::m_is_stack_memory = eDontKnow
protected

Definition at line 155 of file MemoryRegionInfo.h.

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

◆ m_mapped

OptionalBool lldb_private::MemoryRegionInfo::m_mapped = eDontKnow
protected

Definition at line 150 of file MemoryRegionInfo.h.

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

◆ m_memory_tagged

OptionalBool lldb_private::MemoryRegionInfo::m_memory_tagged = eDontKnow
protected

Definition at line 154 of file MemoryRegionInfo.h.

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

◆ m_name

ConstString lldb_private::MemoryRegionInfo::m_name
protected

Definition at line 151 of file MemoryRegionInfo.h.

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

◆ m_pagesize

int lldb_private::MemoryRegionInfo::m_pagesize = 0
protected

Definition at line 157 of file MemoryRegionInfo.h.

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

◆ m_range

RangeType lldb_private::MemoryRegionInfo::m_range
protected

Definition at line 145 of file MemoryRegionInfo.h.

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

◆ m_read

OptionalBool lldb_private::MemoryRegionInfo::m_read = eDontKnow
protected

◆ m_shared

OptionalBool lldb_private::MemoryRegionInfo::m_shared = eDontKnow
protected

Definition at line 149 of file MemoryRegionInfo.h.

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

◆ m_write

OptionalBool lldb_private::MemoryRegionInfo::m_write = eDontKnow
protected

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