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

#include <AuxVector.h>

Collaboration diagram for AuxVector:
Collaboration graph
[legend]

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
}
 Constants describing the type of entry. More...
 

Public Member Functions

 AuxVector (const lldb_private::DataExtractor &data)
 
llvm::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 16 of file AuxVector.h.

Member Enumeration Documentation

◆ EntryType

Constants describing the type of entry.

On Linux, running "LD_SHOW_AUXV=1 ./executable" will spew AUX information. Added AUXV prefix to avoid potential conflicts with system- defined macros

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 

Definition at line 25 of file AuxVector.h.

Constructor & Destructor Documentation

◆ AuxVector()

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

Definition at line 11 of file AuxVector.cpp.

References ParseAuxv().

Member Function Documentation

◆ DumpToLog()

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

◆ GetAuxValue()

llvm::Optional< uint64_t > AuxVector::GetAuxValue ( enum EntryType  entry_type) const

Definition at line 33 of file AuxVector.cpp.

References m_auxv_entries.

◆ 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 71 of file AuxVector.h.

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


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