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.