Go to the documentation of this file.
9 #ifndef LLDB_CORE_SECTION_H
10 #define LLDB_CORE_SECTION_H
50 size_t AddSection(
const lldb::SectionSP §ion_sp);
58 void Dump(llvm::raw_ostream &s,
unsigned indent,
Target *target,
59 bool show_header,
uint32_t depth)
const;
67 size_t start_idx = 0)
const;
80 const lldb::SectionSP §ion_sp,
102 class Section :
public std::enable_shared_from_this<Section>,
116 Section(
const lldb::SectionSP &parent_section_sp,
119 const lldb::ModuleSP &module_sp,
ObjectFile *obj_file,
136 void Dump(llvm::raw_ostream &s,
unsigned indent,
Target *target,
139 void DumpName(llvm::raw_ostream &s)
const;
144 bool allow_section_end =
false)
const;
290 #endif // LLDB_CORE_SECTION_H
bool ReplaceSection(lldb::user_id_t sect_id, const lldb::SectionSP §ion_sp, uint32_t depth=UINT32_MAX)
lldb::SectionSP FindSectionContainingFileAddress(lldb::addr_t addr, uint32_t depth=UINT32_MAX) const
lldb::SectionSP FindSectionByName(ConstString section_dstr) const
const_iterator begin() const
static int Compare(const Section &a, const Section &b)
void Dump(llvm::raw_ostream &s, unsigned indent, Target *target, bool show_header, uint32_t depth) const
std::vector< lldb::SectionSP > collection
lldb::SectionType GetType() const
void SetIsEncrypted(bool b)
bool ContainsSection(lldb::user_id_t sect_id) const
size_t Slide(lldb::addr_t slide_amount, bool slide_children)
void Dump(llvm::raw_ostream &s, unsigned indent, Target *target, uint32_t depth) const
lldb::offset_t GetFileSize() const
lldb::offset_t m_file_offset
uint32_t GetTargetByteSize() const
bool IsDescendant(const Section *section)
void DumpName(llvm::raw_ostream &s) const
size_t GetNumSections(uint32_t depth) const
void SetIsRelocated(bool b)
const ObjectFile * GetObjectFile() const
lldb::SectionSP GetParent() const
lldb::offset_t m_file_size
bool ContainsOnlyDebugInfo() const
Returns true if this section contains debug information.
const char * GetTypeAsCString() const
size_t AddSection(const lldb::SectionSP §ion_sp)
const_iterator end() const
lldb::addr_t GetFileAddress() const
SectionList & operator=(const SectionList &rhs)
bool SetFileAddress(lldb::addr_t file_addr)
SectionList()=default
Create an empty list.
void SetIsFake(bool fake)
Section(const lldb::ModuleSP &module_sp, ObjectFile *obj_file, lldb::user_id_t sect_id, ConstString name, lldb::SectionType sect_type, lldb::addr_t file_vm_addr, lldb::addr_t vm_size, lldb::offset_t file_offset, lldb::offset_t file_size, uint32_t log2align, uint32_t flags, uint32_t target_byte_size=1)
void SetIsThreadSpecific(bool b)
SectionList & GetChildren()
bool Slide(lldb::addr_t slide_amount, bool slide_children)
uint64_t GetDebugInfoSize() const
Get the debug information size from all sections that contain debug information.
bool IsThreadSpecific() const
size_t FindSectionIndex(const Section *sect)
void SetFileOffset(lldb::offset_t file_offset)
ConstString GetName() const
lldb::addr_t GetOffset() const
lldb::SectionSP GetSectionAtIndex(size_t idx) const
lldb::addr_t GetLoadBaseAddress(Target *target) const
void SetPermissions(uint32_t permissions)
Set the permissions using bits OR'ed from lldb::Permissions.
bool DeleteSection(size_t idx)
lldb::SectionWP m_parent_wp
const SectionList & GetChildren() const
lldb::SectionSP FindSectionByType(lldb::SectionType sect_type, bool check_children, size_t start_idx=0) const
lldb::addr_t GetByteSize() const
void SetByteSize(lldb::addr_t byte_size)
void SetFileSize(lldb::offset_t file_size)
uint32_t m_target_byte_size
collection::const_iterator const_iterator
void SetLog2Align(uint32_t align)
A class that represents a running process on the host machine.
lldb::offset_t GetFileOffset() const
bool ResolveContainedAddress(lldb::addr_t offset, Address &so_addr, bool allow_section_end=false) const
ObjectFile * GetObjectFile()
size_t AddUniqueSection(const lldb::SectionSP §ion_sp)
bool ContainsFileAddress(lldb::addr_t vm_addr) const
const Section & operator=(const Section &)=delete
collection::iterator iterator
lldb::offset_t GetSectionData(void *dst, lldb::offset_t dst_len, lldb::offset_t offset=0)
Read the section data from the object file that the section resides in.
lldb::SectionSP FindSectionByID(lldb::user_id_t sect_id) const
uint32_t GetPermissions() const
Get the permissions as OR'ed bits from lldb::Permissions.