LLDB mainline
|
#include <AuxVector.h>
Public Types | |
enum | EntryType { AUXV_AT_NULL = 0 , AUXV_AT_IGNORE = 1 , AUXV_AT_EXECFD = 2 , AUXV_AT_PHDR = 3 , AUXV_AT_PHENT = 4 , AUXV_AT_PHNUM = 5 , AUXV_AT_PAGESZ = 6 , AUXV_AT_BASE = 7 , AUXV_AT_FLAGS = 8 , AUXV_AT_ENTRY = 9 , AUXV_AT_NOTELF = 10 , AUXV_AT_UID = 11 , AUXV_AT_EUID = 12 , AUXV_AT_GID = 13 , AUXV_AT_EGID = 14 , AUXV_AT_CLKTCK = 17 , AUXV_AT_PLATFORM = 15 , AUXV_AT_HWCAP , AUXV_AT_FPUCW = 18 , AUXV_AT_DCACHEBSIZE = 19 , AUXV_AT_ICACHEBSIZE = 20 , AUXV_AT_UCACHEBSIZE = 21 , AUXV_AT_IGNOREPPC = 22 , AUXV_AT_SECURE = 23 , AUXV_AT_BASE_PLATFORM = 24 , AUXV_AT_RANDOM = 25 , AUXV_AT_HWCAP2 = 26 , AUXV_AT_EXECFN = 31 , AUXV_AT_SYSINFO = 32 , AUXV_AT_SYSINFO_EHDR = 33 , AUXV_AT_L1I_CACHESHAPE = 34 , AUXV_AT_L1D_CACHESHAPE = 35 , AUXV_AT_L2_CACHESHAPE = 36 , AUXV_AT_L3_CACHESHAPE = 37 , AUXV_FREEBSD_AT_HWCAP = 25 } |
Constants describing the type of entry. More... | |
Public Member Functions | |
AuxVector (const lldb_private::DataExtractor &data) | |
std::optional< uint64_t > | GetAuxValue (enum EntryType entry_type) const |
void | DumpToLog (lldb_private::Log *log) const |
const char * | GetEntryName (EntryType type) const |
Private Member Functions | |
void | ParseAuxv (const lldb_private::DataExtractor &data) |
Private Attributes | |
std::unordered_map< uint64_t, uint64_t > | m_auxv_entries |
Definition at line 17 of file AuxVector.h.
enum AuxVector::EntryType |
Constants describing the type of entry.
On Linux and FreeBSD, running "LD_SHOW_AUXV=1 ./executable" will spew AUX information. Added AUXV prefix to avoid potential conflicts with system- defined macros. For FreeBSD, the numbers can be found in sys/elf_common.h.
Definition at line 26 of file AuxVector.h.
AuxVector::AuxVector | ( | const lldb_private::DataExtractor & | data | ) |
Definition at line 12 of file AuxVector.cpp.
References ParseAuxv().
void AuxVector::DumpToLog | ( | lldb_private::Log * | log | ) | const |
Definition at line 41 of file AuxVector.cpp.
References GetEntryName(), LLDB_LOGF, m_auxv_entries, and lldb_private::Log::PutCString().
std::optional< uint64_t > AuxVector::GetAuxValue | ( | enum EntryType | entry_type | ) | const |
Definition at line 34 of file AuxVector.cpp.
References m_auxv_entries.
Referenced by RegisterContextCorePOSIX_arm64::RegisterContextCorePOSIX_arm64().
const char * AuxVector::GetEntryName | ( | EntryType | type | ) | const |
Definition at line 53 of file AuxVector.cpp.
References AUXV_AT_BASE, AUXV_AT_BASE_PLATFORM, AUXV_AT_CLKTCK, AUXV_AT_DCACHEBSIZE, AUXV_AT_EGID, AUXV_AT_ENTRY, AUXV_AT_EUID, AUXV_AT_EXECFD, AUXV_AT_EXECFN, AUXV_AT_FLAGS, AUXV_AT_FPUCW, AUXV_AT_GID, AUXV_AT_HWCAP, AUXV_AT_HWCAP2, AUXV_AT_ICACHEBSIZE, AUXV_AT_IGNORE, AUXV_AT_IGNOREPPC, AUXV_AT_L1D_CACHESHAPE, AUXV_AT_L1I_CACHESHAPE, AUXV_AT_L2_CACHESHAPE, AUXV_AT_L3_CACHESHAPE, AUXV_AT_NOTELF, AUXV_AT_NULL, AUXV_AT_PAGESZ, AUXV_AT_PHDR, AUXV_AT_PHENT, AUXV_AT_PHNUM, AUXV_AT_PLATFORM, AUXV_AT_RANDOM, AUXV_AT_SECURE, AUXV_AT_SYSINFO, AUXV_AT_SYSINFO_EHDR, AUXV_AT_UCACHEBSIZE, AUXV_AT_UID, and ENTRY_NAME.
Referenced by DumpToLog().
|
private |
Definition at line 16 of file AuxVector.cpp.
References AUXV_AT_IGNORE, AUXV_AT_NULL, lldb_private::DataExtractor::GetAddress(), lldb_private::DataExtractor::GetAddressByteSize(), m_auxv_entries, and lldb_private::DataExtractor::ValidOffsetForDataOfSize().
Referenced by AuxVector().
|
private |
Definition at line 81 of file AuxVector.h.
Referenced by DumpToLog(), GetAuxValue(), and ParseAuxv().