char buf2[17]; buf[sizeof (buf2) - 1] = '\0'; const char *val2 = _itoa ((unsigned long int) av->a_un.a_val, buf2 + sizeof buf2 - 1, 16, 0); const char *val =  _itoa ((unsigned long int) av->a_type, buf + sizeof buf - 1, 16, 0); _dl_printf ("AT_??? (0x%s): 0x%s\n", val, val2);
_dl_show_auxv (void){  char buf[64];  ElfW(auxv_t) *av;  /* Terminate string.  */  buf[63] = '\0';  /* The following code assumes that the AT_* values are encoded     starting from 0 with AT_NULL, 1 for AT_IGNORE, and all other values     close by (otherwise the array will be too large).  In case we have     to support a platform where these requirements are not fulfilled     some alternative implementation has to be used.  */  for (av = _dl_auxv; av->a_type != AT_NULL; ++av)    {      static const struct      {	const char label[20];	enum { dec, hex, str } form;      } auxvars[] =	{	  [AT_EXECFD - 2] =		{ "AT_EXECFD:       ", dec },	  [AT_PHDR - 2] =		{ "AT_PHDR:         0x", hex },	  [AT_PHENT - 2] =		{ "AT_PHENT:        ", dec },	  [AT_PHNUM - 2] =		{ "AT_PHNUM:        ", dec },	  [AT_PAGESZ - 2] =		{ "AT_PAGESZ:       ", dec },	  [AT_BASE - 2] =		{ "AT_BASE:         0x", hex },	  [AT_FLAGS - 2] =		{ "AT_FLAGS:        0x", hex },	  [AT_ENTRY - 2] =		{ "AT_ENTRY:        0x", hex },	  [AT_NOTELF - 2] =		{ "AT_NOTELF:       ", hex },	  [AT_UID - 2] =		{ "AT_UID:          ", dec },	  [AT_EUID - 2] =		{ "AT_EUID:         ", dec },	  [AT_GID - 2] =		{ "AT_GID:          ", dec },	  [AT_EGID - 2] =		{ "AT_EGID:         ", dec },	  [AT_PLATFORM - 2] =		{ "AT_PLATFORM:     ", str },	  [AT_HWCAP - 2] =		{ "AT_HWCAP:        ", hex },	  [AT_CLKTCK - 2] =		{ "AT_CLKTCK:       ", dec },	  [AT_FPUCW - 2] =		{ "AT_FPUCW:        ", hex },	  [AT_DCACHEBSIZE - 2] =	{ "AT_DCACHEBSIZE:  0x", hex },	  [AT_ICACHEBSIZE - 2] =	{ "AT_ICACHEBSIZE:  0x", hex },	  [AT_UCACHEBSIZE - 2] =	{ "AT_UCACHEBSIZE:  0x", hex },#ifdef DL_NEED_SYSINFO	  [AT_SYSINFO - 2] =		{ "AT_SYSINFO:      0x", hex },	  [AT_SYSINFO_EHDR - 2] =	{ "AT_SYSINFO_EHDR: 0x", hex }#endif	};      unsigned int idx = (unsigned int) (av->a_type - 2);      assert (AT_NULL == 0);      assert (AT_IGNORE == 1);      if (idx < sizeof (auxvars) / sizeof (auxvars[0]))	{	  if (av->a_type != AT_HWCAP || _dl_procinfo (av->a_un.a_val) < 0)	    {	      const char *val = av->a_un.a_ptr;	      if (__builtin_expect (auxvars[idx].form, dec) == dec)		val = _itoa ((unsigned long int) av->a_un.a_val,			     buf + sizeof buf - 1, 10, 0);	      else if (__builtin_expect (auxvars[idx].form, hex) == hex)		val = _itoa ((unsigned long int) av->a_un.a_val,			     buf + sizeof buf - 1, 16, 0);	      _dl_printf ("%s%s\n", auxvars[idx].label, val);	    }	}    }}