LLDB mainline
|
#include <RangeMap.h>
Public Types | |
typedef lldb_private::Range< B, S > | Range |
typedef RangeData< B, S, T > | Entry |
typedef AugmentedRangeData< B, S, T > | AugmentedEntry |
typedef llvm::SmallVector< AugmentedEntry, N > | Collection |
using | const_iterator = typename Collection::const_iterator |
Public Member Functions | |
RangeDataVector (Compare compare=Compare()) | |
~RangeDataVector ()=default | |
void | Append (const Entry &entry) |
bool | Erase (uint32_t start, uint32_t end) |
void | Sort () |
void | CombineConsecutiveEntriesWithEqualData () |
void | Clear () |
bool | IsEmpty () const |
size_t | GetSize () const |
const Entry * | GetEntryAtIndex (size_t i) const |
Entry * | GetMutableEntryAtIndex (size_t i) |
Entry & | GetEntryRef (size_t i) |
const Entry & | GetEntryRef (size_t i) const |
uint32_t | FindEntryIndexThatContains (B addr) const |
uint32_t | FindEntryIndexesThatContain (B addr, std::vector< uint32_t > &indexes) |
Entry * | FindEntryThatContains (B addr) |
const Entry * | FindEntryThatContains (B addr) const |
const Entry * | FindEntryThatContains (const Entry &range) const |
const Entry * | FindEntryStartsAt (B addr) const |
const Entry * | FindEntryThatContainsOrFollows (B addr) const |
uint32_t | FindEntryIndexThatContainsOrFollows (B addr) const |
Entry * | Back () |
const Entry * | Back () const |
const_iterator | begin () const |
const_iterator | end () const |
Static Public Member Functions | |
static bool | BaseLessThan (const Entry &lhs, const Entry &rhs) |
Protected Attributes | |
Collection | m_entries |
Compare | m_compare |
Private Member Functions | |
B | ComputeUpperBounds (size_t lo, size_t hi) |
void | FindEntryIndexesThatContain (B addr, size_t lo, size_t hi, std::vector< uint32_t > &indexes) |
Definition at line 440 of file RangeMap.h.
typedef AugmentedRangeData<B, S, T> lldb_private::RangeDataVector< B, S, T, N, Compare >::AugmentedEntry |
Definition at line 444 of file RangeMap.h.
typedef llvm::SmallVector<AugmentedEntry, N> lldb_private::RangeDataVector< B, S, T, N, Compare >::Collection |
Definition at line 445 of file RangeMap.h.
using lldb_private::RangeDataVector< B, S, T, N, Compare >::const_iterator = typename Collection::const_iterator |
Definition at line 652 of file RangeMap.h.
Definition at line 443 of file RangeMap.h.
typedef lldb_private::Range<B, S> lldb_private::RangeDataVector< B, S, T, N, Compare >::Range |
Definition at line 442 of file RangeMap.h.
|
inline |
Definition at line 447 of file RangeMap.h.
|
default |
|
inline |
Definition at line 451 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by ProcessElfCore::AddAddressRangeFromLoadSegment(), ProcessElfCore::AddAddressRangeFromMemoryTagSegment(), lldb_private::DWARFExpressionList::AddExpression(), lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::AddOSOFileRange(), lldb_private::plugin::dwarf::DWARFDebugAranges::AppendRange(), ProcessMachCore::CreateMemoryRegions(), lldb_private::plugin::dwarf::DWARFDebugAranges::extract(), lldb_private::DWARFCallFrameInfo::GetFDEIndex(), lldb_private::Symtab::InitAddressIndexes(), lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::InitOSO(), and lldb_private::npdb::SymbolFileNativePDB::ParseLineTable().
|
inline |
Definition at line 646 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by ProcessElfCore::AddAddressRangeFromLoadSegment(), ProcessMachCore::CreateMemoryRegions(), lldb_private::DWARFExpressionList::Evaluate(), and lldb_private::DWARFExpressionList::GetDescription().
|
inline |
Definition at line 648 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
|
inlinestatic |
Definition at line 541 of file RangeMap.h.
References lldb_private::Range< B, S >::GetRangeBase().
Referenced by lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryStartsAt(), and lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContains().
|
inline |
Definition at line 653 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by lldb_private::DWARFExpressionList::begin(), lldb_private::RangeDataVector< B, S, T, N, Compare >::Erase(), lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryStartsAt(), lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContains(), and lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContainsOrFollows().
|
inline |
Definition at line 522 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by lldb_private::Symtab::AddSymbol(), lldb_private::DWARFExpressionList::Clear(), lldb_private::plugin::dwarf::DWARFDebugAranges::Clear(), lldb_private::DWARFCallFrameInfo::GetFDEIndex(), lldb_private::npdb::SymbolFileNativePDB::ParseLineTable(), and lldb_private::Symtab::SectionFileAddressesChanged().
|
inline |
Definition at line 486 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::end(), and lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by lldb_private::plugin::dwarf::DWARFDebugAranges::Sort().
|
inlineprivate |
Definition at line 662 of file RangeMap.h.
References lldb_private::Range< B, S >::base, lldb_private::RangeDataVector< B, S, T, N, Compare >::ComputeUpperBounds(), lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries, lldb_private::Range< B, S >::size, and lldb_private::AugmentedRangeData< B, S, T >::upper_bound.
Referenced by lldb_private::RangeDataVector< B, S, T, N, Compare >::ComputeUpperBounds(), and lldb_private::RangeDataVector< B, S, T, N, Compare >::Sort().
|
inline |
Definition at line 654 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by lldb_private::RangeDataVector< B, S, T, N, Compare >::CombineConsecutiveEntriesWithEqualData(), lldb_private::DWARFExpressionList::end(), lldb_private::RangeDataVector< B, S, T, N, Compare >::Erase(), lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryStartsAt(), lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContains(), and lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContainsOrFollows().
|
inline |
Definition at line 453 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::begin(), lldb_private::RangeDataVector< B, S, T, N, Compare >::end(), and lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
|
inlineprivate |
Definition at line 681 of file RangeMap.h.
References lldb_private::Range< B, S >::base, lldb_private::Range< B, S >::Contains(), lldb_private::RangeData< B, S, T >::data, lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryIndexesThatContain(), lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries, and lldb_private::AugmentedRangeData< B, S, T >::upper_bound.
|
inline |
Definition at line 553 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryIndexesThatContain(), and lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryIndexesThatContain(), and lldb_private::Symtab::ForEachSymbolContainingFileAddress().
|
inline |
Definition at line 545 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContains(), lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries, and UINT32_MAX.
Referenced by lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::AddOSOFileRange(), lldb_private::DWARFExpressionList::GetExpressionAtAddress(), and lldb_private::DWARFExpressionList::GetMutableExpressionAtAddress().
|
inline |
Definition at line 635 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContainsOrFollows(), lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries, and UINT32_MAX.
|
inline |
Definition at line 592 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::BaseLessThan(), lldb_private::RangeDataVector< B, S, T, N, Compare >::begin(), lldb_private::RangeDataVector< B, S, T, N, Compare >::end(), and lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by ProcessElfCore::DoGetMemoryRegionInfo(), and lldb_private::Symtab::FindSymbolAtFileAddress().
|
inline |
Definition at line 563 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContains().
Referenced by lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::AddOSOFileRange(), lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::CalculateFrameVariableError(), ProcessElfCore::DoReadMemory(), ProcessMachCore::DoReadMemory(), lldb_private::plugin::dwarf::DWARFDebugAranges::FindAddress(), lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryIndexThatContains(), lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContains(), lldb_private::Symtab::FindSymbolContainingFileAddress(), lldb_private::DWARFCallFrameInfo::GetAddressRange(), lldb_private::LineTable::LinkLineTable(), lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::LinkOSOAddress(), lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::LinkOSOFileAddress(), ProcessMachCore::LoadBinaryViaLowmemUUID(), lldb_private::npdb::SymbolFileNativePDB::ParseInlineSite(), and ProcessElfCore::ReadMemoryTags().
|
inline |
Definition at line 569 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContains().
|
inline |
Definition at line 573 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::BaseLessThan(), lldb_private::RangeDataVector< B, S, T, N, Compare >::begin(), lldb_private::Contains, lldb_private::RangeDataVector< B, S, T, N, Compare >::end(), and lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
|
inline |
Definition at line 614 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::begin(), lldb_private::Contains, lldb_private::RangeDataVector< B, S, T, N, Compare >::end(), lldb_private::Range< B, S >::GetRangeEnd(), and lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by ProcessElfCore::DoGetMemoryRegionInfo(), ProcessMachCore::DoGetMemoryRegionInfo(), lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryIndexThatContainsOrFollows(), and lldb_private::DWARFCallFrameInfo::GetFirstFDEEntryInRange().
|
inline |
Definition at line 528 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::AddOSOARanges(), lldb_private::plugin::dwarf::DWARFDebugAranges::Dump(), lldb_private::DWARFExpressionList::GetAlwaysValidExpr(), lldb_private::DWARFExpressionList::GetExpressionAtAddress(), lldb_private::DWARFCallFrameInfo::GetFunctionAddressAndSizeVector(), ProcessMachCore::LoadBinariesViaExhaustiveSearch(), lldb_private::DWARFExpressionList::MatchesOperand(), and lldb_private::plugin::dwarf::DWARFDebugAranges::OffsetAtIndex().
|
inline |
Definition at line 538 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by lldb_private::DWARFExpressionList::ContainsThreadLocalStorage(), lldb_private::Symtab::Dump(), lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::FinalizeOSOFileRanges(), lldb_private::DWARFCallFrameInfo::ForEachFDEEntries(), and lldb_private::DWARFExpressionList::LinkThreadLocalStorage().
|
inline |
Definition at line 539 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
|
inline |
Definition at line 532 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by ProcessMachCore::CleanupMemoryRegionPermissions(), lldb_private::DWARFExpressionList::GetMutableExpressionAtAddress(), and lldb_private::Symtab::InitAddressIndexes().
|
inline |
Definition at line 526 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::AddOSOARanges(), ProcessMachCore::CleanupMemoryRegionPermissions(), lldb_private::plugin::dwarf::DWARFDebugAranges::Dump(), lldb_private::Symtab::Dump(), lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::FinalizeOSOFileRanges(), lldb_private::DWARFCallFrameInfo::ForEachFDEEntries(), lldb_private::DWARFExpressionList::GetAlwaysValidExpr(), lldb_private::DWARFCallFrameInfo::GetFunctionAddressAndSizeVector(), lldb_private::plugin::dwarf::DWARFDebugAranges::GetNumRanges(), lldb_private::DWARFExpressionList::GetSize(), lldb_private::Symtab::InitAddressIndexes(), and ProcessMachCore::LoadBinariesViaExhaustiveSearch().
|
inline |
Definition at line 524 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by lldb_private::plugin::dwarf::DWARFDebugAranges::IsEmpty(), lldb_private::DWARFExpressionList::IsValid(), and ProcessElfCore::SupportsMemoryTagging().
|
inline |
Definition at line 460 of file RangeMap.h.
References lldb_private::RangeDataVector< B, S, T, N, Compare >::ComputeUpperBounds(), lldb_private::RangeDataVector< B, S, T, N, Compare >::m_compare, and lldb_private::RangeDataVector< B, S, T, N, Compare >::m_entries.
Referenced by ProcessMachCore::CreateMemoryRegions(), ProcessElfCore::DoLoadCore(), lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::FinalizeOSOFileRanges(), lldb_private::DWARFCallFrameInfo::GetFDEIndex(), lldb_private::Symtab::InitAddressIndexes(), lldb_private::plugin::dwarf::SymbolFileDWARFDebugMap::InitOSO(), lldb_private::npdb::SymbolFileNativePDB::ParseLineTable(), lldb_private::DWARFExpressionList::Sort(), and lldb_private::plugin::dwarf::DWARFDebugAranges::Sort().
|
protected |
Definition at line 658 of file RangeMap.h.
Referenced by lldb_private::RangeDataVector< B, S, T, N, Compare >::Sort().
|
protected |
Definition at line 657 of file RangeMap.h.
Referenced by lldb_private::RangeDataVector< B, S, T, N, Compare >::Append(), lldb_private::RangeDataVector< B, S, T, N, Compare >::Back(), lldb_private::RangeDataVector< B, S, T, N, Compare >::begin(), lldb_private::RangeDataVector< B, S, T, N, Compare >::Clear(), lldb_private::RangeDataVector< B, S, T, N, Compare >::CombineConsecutiveEntriesWithEqualData(), lldb_private::RangeDataVector< B, S, T, N, Compare >::ComputeUpperBounds(), lldb_private::RangeDataVector< B, S, T, N, Compare >::end(), lldb_private::RangeDataVector< B, S, T, N, Compare >::Erase(), lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryIndexesThatContain(), lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryIndexThatContains(), lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryIndexThatContainsOrFollows(), lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryStartsAt(), lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContains(), lldb_private::RangeDataVector< B, S, T, N, Compare >::FindEntryThatContainsOrFollows(), lldb_private::RangeDataVector< B, S, T, N, Compare >::GetEntryAtIndex(), lldb_private::RangeDataVector< B, S, T, N, Compare >::GetEntryRef(), lldb_private::RangeDataVector< B, S, T, N, Compare >::GetMutableEntryAtIndex(), lldb_private::RangeDataVector< B, S, T, N, Compare >::GetSize(), lldb_private::RangeDataVector< B, S, T, N, Compare >::IsEmpty(), and lldb_private::RangeDataVector< B, S, T, N, Compare >::Sort().