class LoadedElfModule

Defined at line 29 of file ../../src/lib/unwinder/loaded_elf_module.h

Provides a high level interface over a |Module|. Eventually these classes will be merged.

A LoadedElfModule can represent either a literally loaded ELF program in a program's address

space, or an ELF file (or files) on disk, depending on the corresponding Module's |mode|. In

either case, there is always a live process associated with this object that has a load address.

This class assumes that is has synchronous access to both |binary_memory| and |debug_info_memory|

members of the corresponding Module object.

Public Methods

void LoadedElfModule (const Module & module)

Defined at line 31 of file ../../src/lib/unwinder/loaded_elf_module.h

bool IsValidPC (uint64_t pc)

Check whether a given PC is in the valid range of this module.

Defined at line 37 of file ../../src/lib/unwinder/loaded_elf_module.h

const Module & module ()

Defined at line 39 of file ../../src/lib/unwinder/loaded_elf_module.h

uint64_t load_address ()

Defined at line 40 of file ../../src/lib/unwinder/loaded_elf_module.h

fit::result<Error> Load ()

Load ELF headers and program headers.

Defined at line 40 of file ../../src/lib/unwinder/loaded_elf_module.cc

Memory * binary_memory ()

Defined at line 41 of file ../../src/lib/unwinder/loaded_elf_module.h

Memory * debug_info_memory ()

Defined at line 42 of file ../../src/lib/unwinder/loaded_elf_module.h

Module::AddressMode mode ()

Defined at line 43 of file ../../src/lib/unwinder/loaded_elf_module.h

Module::AddressSize size ()

Defined at line 44 of file ../../src/lib/unwinder/loaded_elf_module.h

const std::vector<Elf64_Phdr> & phdrs ()

Defined at line 46 of file ../../src/lib/unwinder/loaded_elf_module.h

fit::result<Error, Elf64_Shdr> GetSectionByName (std::string_view target_section)

Helpers to get sections or segments.

Defined at line 100 of file ../../src/lib/unwinder/loaded_elf_module.cc

fit::result<Error, Elf64_Phdr> GetSegmentByType (uint32_t p_type)

Always returns an Elf64_Phdr, even if this module is 32 bits.

Defined at line 136 of file ../../src/lib/unwinder/loaded_elf_module.cc