operating system auxiliary vector

GDB show’s Auxiliary Vector

(gdb) info auxv
33   AT_SYSINFO_EHDR      System-supplied DSO's ELF header 0x7fff68bdf000
16   AT_HWCAP             Machine-dependent CPU capability hints 0x78bfbff
6    AT_PAGESZ            System page size               4096
17   AT_CLKTCK            Frequency of times()           100
3    AT_PHDR              Program headers for program    0x400040
4    AT_PHENT             Size of program header entry   56
5    AT_PHNUM             Number of program headers      8
7    AT_BASE              Base address of interpreter    0x7f936f757000
8    AT_FLAGS             Flags                          0x0
9    AT_ENTRY             Entry point of program         0x401850
11   AT_UID               Real user ID                   1000
12   AT_EUID              Effective user ID              1000
13   AT_GID               Real group ID                  1000
14   AT_EGID              Effective group ID             1000
23   AT_SECURE            Boolean, was exec setuid-like? 0
25   AT_RANDOM            Address of 16 random bytes     0x7fff68a94c69
31   AT_EXECFN            File name of executable        0x7fff68a95fef "/bin/cat"
15   AT_PLATFORM          String identifying platform    0x7fff68a94c79 "x86_64"
0    AT_NULL              End of vector                  0x0
(gdb)

Process Involved

/bin/cat .
concatenate files and print on the standard output.

Explanation

     Display the auxiliary vector of the inferior, which can be either a
     live process or a core dump file.  GDB prints each tag value
     numerically, and also shows names and text descriptions for
     recognized tags.  Some values in the vector are numbers, some bit
     masks, and some pointers to strings or other data.  GDB displays
     each value in the most appropriate form for a recognized tag, and
     in hexadecimal for an unrecognized tag.

source :  http://www.slac.stanford.edu/comp/unix/package/
             rtems/doc/html/gdb/gdb.info.Auxiliary_Vector.html

A Screen Shot from /usr/include/elf.h in Debian

/* Legal values for a_type (entry type).  */

#define AT_NULL         0               /* End of vector */
#define AT_IGNORE       1               /* Entry should be ignored */
#define AT_EXECFD       2               /* File descriptor of program */
#define AT_PHDR         3               /* Program headers for program */
#define AT_PHENT        4               /* Size of program header entry */
#define AT_PHNUM        5               /* Number of program headers */
#define AT_PAGESZ       6               /* System page size */
#define AT_BASE         7               /* Base address of interpreter */
#define AT_FLAGS        8               /* Flags */
#define AT_ENTRY        9               /* Entry point of program */
#define AT_NOTELF       10              /* Program is not ELF */
#define AT_UID          11              /* Real uid */
#define AT_EUID         12              /* Effective uid */
#define AT_GID          13              /* Real gid */
#define AT_EGID         14              /* Effective gid */
#define AT_CLKTCK       17              /* Frequency of times() */

 

Leave a Reply

Your email address will not be published. Required fields are marked *