gdb: OS Information

 
 10.16 Operating System Auxiliary Information
 ============================================
 
 GDB provides interfaces to useful OS facilities that can help you debug
 your program.
 
    Some operating systems supply an "auxiliary vector" to programs at
 startup.  This is akin to the arguments and environment that you specify
 for a program, but contains a system-dependent variety of binary values
 that tell system libraries important details about the hardware,
 operating system, and process.  Each value's purpose is identified by an
 integer tag; the meanings are well-known but system-specific.  Depending
 on the configuration and operating system facilities, GDB may be able to
 show you this information.  For remote targets, this functionality may
 further depend on the remote stub's support of the 'qXfer:auxv:read'
 packet, see SeeqXfer auxiliary vector read.
 
 'info auxv'
      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.
 
    On some targets, GDB can access operating system-specific information
 and show it to you.  The types of information available will differ
 depending on the type of operating system running on the target.  The
 mechanism used to fetch the data is described in SeeOperating System
 Information.  For remote targets, this functionality depends on the
 remote stub's support of the 'qXfer:osdata:read' packet, see SeeqXfer
 osdata read.
 
 'info os INFOTYPE'
 
      Display OS information of the requested type.
 
      On GNU/Linux, the following values of INFOTYPE are valid:
 
      'cpus'
           Display the list of all CPUs/cores.  For each CPU/core, GDB
           prints the available fields from /proc/cpuinfo.  For each
           supported architecture different fields are available.  Two
           common entries are processor which gives CPU number and
           bogomips; a system constant that is calculated during kernel
           initialization.
 
      'files'
           Display the list of open file descriptors on the target.  For
           each file descriptor, GDB prints the identifier of the process
           owning the descriptor, the command of the owning process, the
           value of the descriptor, and the target of the descriptor.
 
      'modules'
           Display the list of all loaded kernel modules on the target.
           For each module, GDB prints the module name, the size of the
           module in bytes, the number of times the module is used, the
           dependencies of the module, the status of the module, and the
           address of the loaded module in memory.
 
      'msg'
           Display the list of all System V message queues on the target.
           For each message queue, GDB prints the message queue key, the
           message queue identifier, the access permissions, the current
           number of bytes on the queue, the current number of messages
           on the queue, the processes that last sent and received a
           message on the queue, the user and group of the owner and
           creator of the message queue, the times at which a message was
           last sent and received on the queue, and the time at which the
           message queue was last changed.
 
      'processes'
           Display the list of processes on the target.  For each
           process, GDB prints the process identifier, the name of the
           user, the command corresponding to the process, and the list
           of processor cores that the process is currently running on.
           (To understand what these properties mean, for this and the
           following info types, please consult the general GNU/Linux
           documentation.)
 
      'procgroups'
           Display the list of process groups on the target.  For each
           process, GDB prints the identifier of the process group that
           it belongs to, the command corresponding to the process group
           leader, the process identifier, and the command line of the
           process.  The list is sorted first by the process group
           identifier, then by the process identifier, so that processes
           belonging to the same process group are grouped together and
           the process group leader is listed first.
 
      'semaphores'
           Display the list of all System V semaphore sets on the target.
           For each semaphore set, GDB prints the semaphore set key, the
           semaphore set identifier, the access permissions, the number
           of semaphores in the set, the user and group of the owner and
           creator of the semaphore set, and the times at which the
           semaphore set was operated upon and changed.
 
      'shm'
           Display the list of all System V shared-memory regions on the
           target.  For each shared-memory region, GDB prints the region
           key, the shared-memory identifier, the access permissions, the
           size of the region, the process that created the region, the
           process that last attached to or detached from the region, the
           current number of live attaches to the region, and the times
           at which the region was last attached to, detach from, and
           changed.
 
      'sockets'
           Display the list of Internet-domain sockets on the target.
           For each socket, GDB prints the address and port of the local
           and remote endpoints, the current state of the connection, the
           creator of the socket, the IP address family of the socket,
           and the type of the connection.
 
      'threads'
           Display the list of threads running on the target.  For each
           thread, GDB prints the identifier of the process that the
           thread belongs to, the command of the process, the thread
           identifier, and the processor core that it is currently
           running on.  The main thread of a process is not listed.
 
 'info os'
      If INFOTYPE is omitted, then list the possible values for INFOTYPE
      and the kind of OS information available for each INFOTYPE.  If the
      target does not return a list of possible types, this command will
      report an error.