LLDB mainline
lldb_private::MemoryTagManager Class Referenceabstract

#include <MemoryTagManager.h>

Inheritance diagram for lldb_private::MemoryTagManager:
[legend]

Public Types

typedef Range< lldb::addr_t, lldb::addr_tTagRange
typedef std::function< size_t(lldb::offset_t, size_t, void *)> CoreReaderFn

Public Member Functions

virtual lldb::addr_t GetLogicalTag (lldb::addr_t addr) const =0
virtual lldb::addr_t RemoveTagBits (lldb::addr_t addr) const =0
virtual ptrdiff_t AddressDiff (lldb::addr_t addr1, lldb::addr_t addr2) const =0
virtual lldb::addr_t GetGranuleSize () const =0
virtual TagRange ExpandToGranule (TagRange range) const =0
virtual llvm::Expected< TagRangeMakeTaggedRange (lldb::addr_t addr, lldb::addr_t end_addr, const lldb_private::MemoryRegionInfos &memory_regions) const =0
virtual llvm::Expected< std::vector< TagRange > > MakeTaggedRanges (lldb::addr_t addr, lldb::addr_t end_addr, const lldb_private::MemoryRegionInfos &memory_regions) const =0
virtual int32_t GetAllocationTagType () const =0
virtual size_t GetTagSizeInBytes () const =0
virtual llvm::Expected< std::vector< lldb::addr_t > > UnpackTagsData (const std::vector< uint8_t > &tags, size_t granules=0) const =0
virtual llvm::Expected< std::vector< lldb::addr_t > > UnpackTagsFromCoreFileSegment (CoreReaderFn reader, lldb::addr_t tag_segment_virtual_address, lldb::addr_t tag_segment_data_address, lldb::addr_t addr, size_t len) const =0
virtual llvm::Expected< std::vector< uint8_t > > PackTags (const std::vector< lldb::addr_t > &tags) const =0
virtual llvm::Expected< std::vector< lldb::addr_t > > RepeatTagsForRange (const std::vector< lldb::addr_t > &tags, TagRange range) const =0
virtual ~MemoryTagManager ()=default

Detailed Description

Definition at line 28 of file MemoryTagManager.h.

Member Typedef Documentation

◆ CoreReaderFn

typedef std::function<size_t(lldb::offset_t, size_t, void *)> lldb_private::MemoryTagManager::CoreReaderFn

Definition at line 128 of file MemoryTagManager.h.

◆ TagRange

Constructor & Destructor Documentation

◆ ~MemoryTagManager()

virtual lldb_private::MemoryTagManager::~MemoryTagManager ( )
virtualdefault

Member Function Documentation

◆ AddressDiff()

virtual ptrdiff_t lldb_private::MemoryTagManager::AddressDiff ( lldb::addr_t addr1,
lldb::addr_t addr2 ) const
pure virtual

◆ ExpandToGranule()

virtual TagRange lldb_private::MemoryTagManager::ExpandToGranule ( TagRange range) const
pure virtual

◆ GetAllocationTagType()

virtual int32_t lldb_private::MemoryTagManager::GetAllocationTagType ( ) const
pure virtual

◆ GetGranuleSize()

virtual lldb::addr_t lldb_private::MemoryTagManager::GetGranuleSize ( ) const
pure virtual

◆ GetLogicalTag()

virtual lldb::addr_t lldb_private::MemoryTagManager::GetLogicalTag ( lldb::addr_t addr) const
pure virtual

◆ GetTagSizeInBytes()

virtual size_t lldb_private::MemoryTagManager::GetTagSizeInBytes ( ) const
pure virtual

◆ MakeTaggedRange()

virtual llvm::Expected< TagRange > lldb_private::MemoryTagManager::MakeTaggedRange ( lldb::addr_t addr,
lldb::addr_t end_addr,
const lldb_private::MemoryRegionInfos & memory_regions ) const
pure virtual

◆ MakeTaggedRanges()

virtual llvm::Expected< std::vector< TagRange > > lldb_private::MemoryTagManager::MakeTaggedRanges ( lldb::addr_t addr,
lldb::addr_t end_addr,
const lldb_private::MemoryRegionInfos & memory_regions ) const
pure virtual

◆ PackTags()

virtual llvm::Expected< std::vector< uint8_t > > lldb_private::MemoryTagManager::PackTags ( const std::vector< lldb::addr_t > & tags) const
pure virtual

◆ RemoveTagBits()

virtual lldb::addr_t lldb_private::MemoryTagManager::RemoveTagBits ( lldb::addr_t addr) const
pure virtual

◆ RepeatTagsForRange()

virtual llvm::Expected< std::vector< lldb::addr_t > > lldb_private::MemoryTagManager::RepeatTagsForRange ( const std::vector< lldb::addr_t > & tags,
TagRange range ) const
pure virtual

◆ UnpackTagsData()

virtual llvm::Expected< std::vector< lldb::addr_t > > lldb_private::MemoryTagManager::UnpackTagsData ( const std::vector< uint8_t > & tags,
size_t granules = 0 ) const
pure virtual

◆ UnpackTagsFromCoreFileSegment()

virtual llvm::Expected< std::vector< lldb::addr_t > > lldb_private::MemoryTagManager::UnpackTagsFromCoreFileSegment ( CoreReaderFn reader,
lldb::addr_t tag_segment_virtual_address,
lldb::addr_t tag_segment_data_address,
lldb::addr_t addr,
size_t len ) const
pure virtual

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