|
LLDB mainline
|
#include <Section.h>
Public Types | |
| typedef std::vector< lldb::SectionSP > | collection |
| typedef collection::iterator | iterator |
| typedef collection::const_iterator | const_iterator |
| using | MergeCallback |
Public Member Functions | |
| const_iterator | begin () const |
| const_iterator | end () const |
| const_iterator | begin () |
| const_iterator | end () |
| SectionList ()=default | |
| Create an empty list. | |
| SectionList (const SectionList &lhs) | |
| SectionList & | operator= (const SectionList &rhs) |
| size_t | AddSection (const lldb::SectionSP §ion_sp) |
| size_t | AddUniqueSection (const lldb::SectionSP §ion_sp) |
| size_t | FindSectionIndex (const Section *sect) |
| bool | ContainsSection (lldb::user_id_t sect_id) const |
| void | Dump (llvm::raw_ostream &s, unsigned indent, Target *target, bool show_header, uint32_t depth) const |
| lldb::SectionSP | FindSectionByName (ConstString section_dstr) const |
| lldb::SectionSP | FindSectionByID (lldb::user_id_t sect_id) const |
| lldb::SectionSP | FindSectionByType (lldb::SectionType sect_type, bool check_children, size_t start_idx=0) const |
| lldb::SectionSP | FindSectionContainingFileAddress (lldb::addr_t addr, uint32_t depth=UINT32_MAX) const |
| size_t | GetSize () const |
| size_t | GetNumSections (uint32_t depth) const |
| bool | ReplaceSection (lldb::user_id_t sect_id, const lldb::SectionSP §ion_sp, uint32_t depth=UINT32_MAX) |
| bool | DeleteSection (size_t idx) |
| lldb::SectionSP | GetSectionAtIndex (size_t idx) const |
| size_t | Slide (lldb::addr_t slide_amount, bool slide_children) |
| void | Clear () |
| uint64_t | GetDebugInfoSize () const |
| Get the debug information size from all sections that contain debug information. | |
Static Public Member Functions | |
| static SectionList | Merge (SectionList &lhs, SectionList &rhs, MergeCallback filter) |
Protected Attributes | |
| collection | m_sections |
| typedef std::vector<lldb::SectionSP> lldb_private::SectionList::collection |
| typedef collection::const_iterator lldb_private::SectionList::const_iterator |
| typedef collection::iterator lldb_private::SectionList::iterator |
|
default |
Create an empty list.
References SectionList(), and UINT32_MAX.
Referenced by GetDebugInfoSize(), Merge(), operator=(), SectionList(), and SectionList().
| SectionList::SectionList | ( | const SectionList & | lhs | ) |
Definition at line 480 of file Section.cpp.
References m_sections, and SectionList().
| size_t SectionList::AddSection | ( | const lldb::SectionSP & | section_sp | ) |
Definition at line 488 of file Section.cpp.
References m_sections.
Referenced by AddUniqueSection(), lldb_private::wasm::SymbolVendorWasm::CreateInstance(), SymbolVendorELF::CreateInstance(), SymbolVendorPECOFF::CreateInstance(), lldb_private::breakpad::ObjectFileBreakpad::CreateSections(), lldb_private::ObjectFileJSON::CreateSections(), lldb_private::wasm::ObjectFileWasm::CreateSections(), ObjectFileCOFF::CreateSections(), ObjectFileELF::CreateSections(), ObjectFilePECOFF::CreateSections(), ObjectFilePlaceholder::CreateSections(), ObjectFileXCOFF::CreateSectionsWithBitness(), Merge(), lldb_private::IRExecutionUnit::PopulateSectionList(), and ObjectFileMachO::ProcessSegmentCommand().
| size_t SectionList::AddUniqueSection | ( | const lldb::SectionSP & | section_sp | ) |
Definition at line 520 of file Section.cpp.
References AddSection(), FindSectionIndex(), and UINT32_MAX.
|
inline |
Definition at line 43 of file Section.h.
References m_sections.
|
inline |
|
inline |
Definition at line 93 of file Section.h.
References m_sections.
| bool SectionList::ContainsSection | ( | lldb::user_id_t | sect_id | ) | const |
Definition at line 646 of file Section.cpp.
References FindSectionByID().
| bool SectionList::DeleteSection | ( | size_t | idx | ) |
Definition at line 499 of file Section.cpp.
References m_sections.
Referenced by lldb_private::Module::SetSymbolFileFileSpec().
| void SectionList::Dump | ( | llvm::raw_ostream & | s, |
| unsigned | indent, | ||
| Target * | target, | ||
| bool | show_header, | ||
| uint32_t | depth ) const |
Definition at line 650 of file Section.cpp.
References lldb_private::Target::HasLoadedSections(), and m_sections.
Referenced by lldb_private::ObjectFileJIT::Dump(), lldb_private::wasm::ObjectFileWasm::Dump(), ObjectFileELF::Dump(), ObjectFileMachO::Dump(), ObjectFilePECOFF::Dump(), and DumpModuleSections().
|
inline |
Definition at line 44 of file Section.h.
References m_sections.
|
inline |
Definition at line 42 of file Section.h.
References m_sections.
Referenced by FindSectionByID(), FindSectionByName(), FindSectionContainingFileAddress(), FindSectionIndex(), GetNumSections(), ReplaceSection(), and Slide().
| SectionSP SectionList::FindSectionByID | ( | lldb::user_id_t | sect_id | ) | const |
Definition at line 586 of file Section.cpp.
References end(), and m_sections.
Referenced by ObjectFilePECOFF::AppendFromCOFFSymbolTable(), ContainsSection(), ConvertPDBLocationToDWARFExpression(), lldb_private::npdb::MakeGlobalLocationExpression(), ObjectFileELF::ParseSymbols(), ObjectFileELF::ParseSymbolTable(), ObjectFileELF::ParseTrampolineSymbols(), and ObjectFileELF::RelocateDebugSections().
| SectionSP SectionList::FindSectionByName | ( | ConstString | section_dstr | ) | const |
Definition at line 564 of file Section.cpp.
References end(), FindSectionByName(), lldb_private::Section::GetChildren(), lldb_private::Section::GetName(), and m_sections.
Referenced by lldb_private::DynamicLoaderDarwin::AddModulesUsingPreloadedModules(), lldb_private::plugin::dwarf::SymbolFileDWARF::CalculateAbilities(), ObjectFileELF::CalculateStrata(), ObjectFileMachO::CalculateStrata(), CommandObjectTargetModulesLoad::DoExecute(), lldb_private::PlatformDarwin::ExtractCrashInfoAnnotations(), lldb::SBModule::FindSection(), FindSectionByName(), ObjectFileMachO::GetBaseAddress(), ObjectFileMachO::GetEntryPointAddress(), ObjectFileELF::GetGnuDebugDataObjectFile(), ObjectFileMachO::GetMachHeaderSection(), lldb_private::AppleObjCRuntime::GetObjCVersion(), lldb_private::AppleObjCRuntimeV2::GetSharedCacheBaseAddress(), ObjectFileMachO::LoadCoreFileImages(), DynamicLoaderDarwinKernel::KextImageInfo::LoadImageUsingMemoryModule(), DynamicLoaderFreeBSDKernel::KModImageInfo::LoadImageUsingMemoryModule(), Merge(), ObjectFileMachO::ParseSymtab(), ObjectFileMachO::ProcessSegmentCommand(), lldb_private::DynamicLoaderDarwin::UnloadModuleSections(), and lldb_private::DynamicLoaderDarwin::UpdateImageLoadAddress().
| SectionSP SectionList::FindSectionByType | ( | lldb::SectionType | sect_type, |
| bool | check_children, | ||
| size_t | start_idx = 0 ) const |
Definition at line 604 of file Section.cpp.
References m_sections.
Referenced by lldb_private::plugin::dwarf::SymbolFileDWARF::CalculateAbilities(), lldb_private::wasm::SymbolVendorWasm::CreateInstance(), SymbolVendorELF::CreateInstance(), SymbolVendorPECOFF::CreateInstance(), ObjectFileELF::CreateSections(), lldb_private::CompactUnwindInfo::GetCompactUnwindInfoForFunction(), lldb_private::UnwindTable::Initialize(), LoadSection(), lldb_private::plugin::dwarf::SymbolFileDWARF::LoadSectionData(), lldb_private::SymbolFileCTF::ParseHeader(), and ObjectFileELF::ParseSymtab().
| SectionSP SectionList::FindSectionContainingFileAddress | ( | lldb::addr_t | addr, |
| uint32_t | depth = UINT32_MAX ) const |
Definition at line 623 of file Section.cpp.
References lldb_private::Section::ContainsFileAddress(), end(), FindSectionContainingFileAddress(), lldb_private::Section::GetChildren(), lldb_private::Section::IsFake(), and m_sections.
Referenced by lldb_private::breakpad::SymbolFileBreakpad::AddSymbols(), FindSectionContainingFileAddress(), lldb_private::Symbol::FromJSON(), lldb_private::breakpad::SymbolFileBreakpad::GetOrCreateFunction(), ObjectFileELF::ParseSymtab(), ObjectFileELF::ParseUnwindSymbols(), and lldb_private::Address::ResolveAddressUsingFileSections().
| size_t SectionList::FindSectionIndex | ( | const Section * | sect | ) |
Definition at line 507 of file Section.cpp.
References begin(), end(), m_sections, and UINT32_MAX.
Referenced by AddUniqueSection().
| uint64_t SectionList::GetDebugInfoSize | ( | ) | const |
Get the debug information size from all sections that contain debug information.
Symbol tables are not considered part of the debug information for this call, just known sections that contain debug information.
Definition at line 680 of file Section.cpp.
References GetDebugInfoSize(), GetSize(), m_sections, and SectionList().
Referenced by lldb_private::plugin::dwarf::SymbolFileDWARFDwo::GetDebugInfoSize(), GetDebugInfoSize(), and lldb_private::SymbolFileCommon::GetDebugInfoSize().
| size_t SectionList::GetNumSections | ( | uint32_t | depth | ) | const |
Definition at line 546 of file Section.cpp.
References end(), and m_sections.
Referenced by AddSectionsToRangeMap(), ProcessMachCore::CreateMemoryRegions(), lldb_private::ObjectFile::GetLoadableData(), MachSymtabSectionInfo::MachSymtabSectionInfo(), lldb_private::breakpad::SymbolFileBreakpad::LineIterator::operator++(), lldb_private::Module::SetSymbolFileFileSpec(), and lldb_private::Target::UnloadModuleSections().
| SectionSP SectionList::GetSectionAtIndex | ( | size_t | idx | ) | const |
Definition at line 557 of file Section.cpp.
References m_sections.
Referenced by AddSectionsToRangeMap(), lldb_private::minidump::ProcessMinidump::BuildMemoryRegions(), lldb::SBTarget::ClearModuleLoadAddress(), CreateAllImageInfosPayload(), ProcessMachCore::CreateMemoryRegions(), lldb_private::ObjectFile::GetLoadableData(), ObjectFileMachO::GetMachHeaderSection(), lldb::SBModule::GetSectionAtIndex(), lldb_private::Module::IsLoadedInTarget(), DynamicLoaderStatic::LoadAllImagesAtFileAddresses(), DynamicLoaderDarwinKernel::KextImageInfo::LoadImageUsingMemoryModule(), DynamicLoaderFreeBSDKernel::KModImageInfo::LoadImageUsingMemoryModule(), lldb_private::breakpad::SymbolFileBreakpad::LineIterator::operator++(), ObjectFileCOFF::ParseSymtab(), ObjectFileXCOFF::ParseSymtab(), JITLoaderGDB::ReadJITDescriptorImpl(), elf::ELFSymbol::sectionIndexToCString(), lldb_private::ObjectFileJIT::SetLoadAddress(), lldb_private::wasm::ObjectFileWasm::SetLoadAddress(), ObjectFileELF::SetLoadAddress(), ObjectFileMachO::SetLoadAddress(), ObjectFilePECOFF::SetLoadAddress(), lldb_private::Module::SetSymbolFileFileSpec(), lldb_private::Target::UnloadModuleSections(), DynamicLoaderHexagonDYLD::UnloadSections(), lldb_private::DynamicLoader::UnloadSectionsCommon(), DynamicLoaderHexagonDYLD::UpdateLoadedSections(), and updateSectionLoadAddress().
|
inline |
Definition at line 77 of file Section.h.
References m_sections.
Referenced by lldb_private::minidump::ProcessMinidump::BuildMemoryRegions(), lldb::SBTarget::ClearModuleLoadAddress(), CreateAllImageInfosPayload(), GetDebugInfoSize(), ObjectFileMachO::GetMachHeaderSection(), lldb::SBModule::GetNumSections(), lldb_private::Module::IsLoadedInTarget(), DynamicLoaderStatic::LoadAllImagesAtFileAddresses(), DynamicLoaderDarwinKernel::KextImageInfo::LoadImageUsingMemoryModule(), DynamicLoaderFreeBSDKernel::KModImageInfo::LoadImageUsingMemoryModule(), JITLoaderGDB::ReadJITDescriptorImpl(), lldb_private::ObjectFileJIT::SetLoadAddress(), lldb_private::wasm::ObjectFileWasm::SetLoadAddress(), ObjectFileELF::SetLoadAddress(), ObjectFileMachO::SetLoadAddress(), ObjectFilePECOFF::SetLoadAddress(), DynamicLoaderHexagonDYLD::UnloadSections(), lldb_private::DynamicLoader::UnloadSectionsCommon(), DynamicLoaderHexagonDYLD::UpdateLoadedSections(), and updateSectionLoadAddress().
|
static |
Definition at line 692 of file Section.cpp.
References AddSection(), FindSectionByName(), and SectionList().
Referenced by ObjectFileELF::CreateSections().
| SectionList & SectionList::operator= | ( | const SectionList & | rhs | ) |
Definition at line 482 of file Section.cpp.
References m_sections, and SectionList().
| bool SectionList::ReplaceSection | ( | lldb::user_id_t | sect_id, |
| const lldb::SectionSP & | section_sp, | ||
| uint32_t | depth = UINT32_MAX ) |
Definition at line 528 of file Section.cpp.
References end(), m_sections, and ReplaceSection().
Referenced by lldb_private::wasm::SymbolVendorWasm::CreateInstance(), SymbolVendorELF::CreateInstance(), SymbolVendorPECOFF::CreateInstance(), ObjectFileELF::CreateSections(), and ReplaceSection().
| size_t SectionList::Slide | ( | lldb::addr_t | slide_amount, |
| bool | slide_children ) |
Definition at line 670 of file Section.cpp.
References end(), and m_sections.
Referenced by ObjectFileMachO::ProcessSegmentCommand().
|
protected |
Definition at line 113 of file Section.h.
Referenced by AddSection(), begin(), begin(), Clear(), DeleteSection(), Dump(), end(), end(), FindSectionByID(), FindSectionByName(), FindSectionByType(), FindSectionContainingFileAddress(), FindSectionIndex(), GetDebugInfoSize(), GetNumSections(), GetSectionAtIndex(), GetSize(), operator=(), ReplaceSection(), SectionList(), and Slide().