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 qXfer 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 Operating System
Information. For remote targets, this functionality depends on the
remote stub's support of the 'qXfer:osdata:read' packet, see qXfer
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.