if (_dl_debug_mask & DL_DEBUG_HELP) { size_t cnt;  _dl_printf ("\ Valid options for the LD_DEBUG environment variable are:\n\n");  for (cnt = 0; cnt < ndebopts; ++cnt) _dl_printf ("  %s%s %s\n", debopts[cnt].name, "       " + strlen (debopts[cnt].name) - 3, debopts[cnt].helptext);  _dl_printf ("\n\ To direct the debugging output into a file instead of standard output\n\ a filename can be specified using the LD_DEBUG_OUTPUT environment variable.\n"); _exit (0); }
process_dl_debug (const char *dl_debug){  size_t len;#define separators " ,:"  do    {      len = 0;      /* Skip separating white spaces and commas.  */      dl_debug += strspn (dl_debug, separators);      if (*dl_debug != '\0')	{	  len = strcspn (dl_debug, separators);	  switch (len)	    {	    case 3:	      /* This option is not documented since it is not generally		 useful.  */	      if (memcmp (dl_debug, "all", 3) == 0)		{		  _dl_debug_mask = (DL_DEBUG_LIBS | DL_DEBUG_IMPCALLS				    | DL_DEBUG_RELOC | DL_DEBUG_FILES				    | DL_DEBUG_SYMBOLS | DL_DEBUG_BINDINGS				    | DL_DEBUG_VERSIONS);		  any_debug = 1;		  continue;		}	      break;	    case 4:	      if (memcmp (dl_debug, "help", 4) == 0)		{		  _dl_printf ("\Valid options for the LD_DEBUG environment variable are:\n\\n\  bindings   display information about symbol binding\n\  files      display processing of files and libraries\n\  help       display this help message and exit\n\  libs       display library search paths\n\  reloc      display relocation processing\n\  statistics display relocation statistics\n\  symbols    display symbol table processing\n\  versions   display version dependencies\n\\n\To direct the debugging output into a file instead of standard output\n\a filename can be specified using the LD_DEBUG_OUTPUT environment variable.\n");		  _exit (0);		}	      if (memcmp (dl_debug, "libs", 4) == 0)		{		  _dl_debug_mask |= DL_DEBUG_LIBS | DL_DEBUG_IMPCALLS;		  any_debug = 1;		  continue;		}	      break;	    case 5:	      if (memcmp (dl_debug, "reloc", 5) == 0)		{		  _dl_debug_mask |= DL_DEBUG_RELOC | DL_DEBUG_IMPCALLS;		  any_debug = 1;		  continue;		}	      if (memcmp (dl_debug, "files", 5) == 0)		{		  _dl_debug_mask |= DL_DEBUG_FILES | DL_DEBUG_IMPCALLS;		  any_debug = 1;		  continue;		}	      break;	    case 7:	      if (memcmp (dl_debug, "symbols", 7) == 0)		{		  _dl_debug_mask |= DL_DEBUG_SYMBOLS | DL_DEBUG_IMPCALLS;		  any_debug = 1;		  continue;		}	      break;	    case 8:	      if (memcmp (dl_debug, "bindings", 8) == 0)		{		  _dl_debug_mask |= DL_DEBUG_BINDINGS | DL_DEBUG_IMPCALLS;		  any_debug = 1;		  continue;		}	      if (memcmp (dl_debug, "versions", 8) == 0)		{		  _dl_debug_mask |= DL_DEBUG_VERSIONS | DL_DEBUG_IMPCALLS;		  any_debug = 1;		  continue;		}	      break;	    case 10:	      if (memcmp (dl_debug, "statistics", 10) == 0)		{		  _dl_debug_mask |= DL_DEBUG_STATISTICS;		  continue;		}	      break;	    default:	      break;	    }	  {	    /* Display a warning and skip everything until next separator.  */	    char *startp = strndupa (dl_debug, len);	    _dl_error_printf ("\warning: debug option `%s' unknown; try LD_DEBUG=help\n", startp);	    break;	  }	}    }  while (*(dl_debug += len) != '\0');}