LLDB mainline
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
AuxVector Class Reference

#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
 

Detailed Description

Definition at line 17 of file AuxVector.h.

Member Enumeration Documentation

◆ 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.

Enumerator
AUXV_AT_NULL 

End of auxv.

AUXV_AT_IGNORE 

Ignore entry.

AUXV_AT_EXECFD 

File descriptor of program.

AUXV_AT_PHDR 

Program headers.

AUXV_AT_PHENT 

Size of program header.

AUXV_AT_PHNUM 

Number of program headers.

AUXV_AT_PAGESZ 

Page size.

AUXV_AT_BASE 

Interpreter base address.

AUXV_AT_FLAGS 

Flags.

AUXV_AT_ENTRY 

Program entry point.

AUXV_AT_NOTELF 

Set if program is not an ELF.

AUXV_AT_UID 

UID.

AUXV_AT_EUID 

Effective UID.

AUXV_AT_GID 

GID.

AUXV_AT_EGID 

Effective GID.

AUXV_AT_CLKTCK 

Clock frequency (e.g. times(2)).

AUXV_AT_PLATFORM 

String identifying platform.

AUXV_AT_HWCAP 

Machine dependent hints about processor capabilities.

AUXV_AT_FPUCW 

Used FPU control word.

AUXV_AT_DCACHEBSIZE 

Data cache block size.

AUXV_AT_ICACHEBSIZE 

Instruction cache block size.

AUXV_AT_UCACHEBSIZE 

Unified cache block size.

AUXV_AT_IGNOREPPC 

Entry should be ignored.

AUXV_AT_SECURE 

Boolean, was exec setuid-like?

AUXV_AT_BASE_PLATFORM 

String identifying real platforms.

AUXV_AT_RANDOM 

Address of 16 random bytes.

AUXV_AT_HWCAP2 

Extension of AT_HWCAP.

AUXV_AT_EXECFN 

Filename of executable.

AUXV_AT_SYSINFO 

Pointer to the global system page used for system calls and other nice things.

AUXV_AT_SYSINFO_EHDR 
AUXV_AT_L1I_CACHESHAPE 

Shapes of the caches.

AUXV_AT_L1D_CACHESHAPE 
AUXV_AT_L2_CACHESHAPE 
AUXV_AT_L3_CACHESHAPE 
AUXV_FREEBSD_AT_HWCAP 

FreeBSD specific AT_HWCAP value.

Definition at line 26 of file AuxVector.h.

Constructor & Destructor Documentation

◆ AuxVector()

AuxVector::AuxVector ( const lldb_private::DataExtractor data)

Definition at line 12 of file AuxVector.cpp.

References ParseAuxv().

Member Function Documentation

◆ DumpToLog()

void AuxVector::DumpToLog ( lldb_private::Log log) const

◆ GetAuxValue()

std::optional< uint64_t > AuxVector::GetAuxValue ( enum EntryType  entry_type) const

◆ GetEntryName()

const char * AuxVector::GetEntryName ( EntryType  type) const

◆ ParseAuxv()

void AuxVector::ParseAuxv ( const lldb_private::DataExtractor data)
private

Member Data Documentation

◆ m_auxv_entries

std::unordered_map<uint64_t, uint64_t> AuxVector::m_auxv_entries
private

Definition at line 81 of file AuxVector.h.

Referenced by DumpToLog(), GetAuxValue(), and ParseAuxv().


The documentation for this class was generated from the following files: