| <html lang="en"> |
| <head> |
| <title>Process Information - Debugging with GDB</title> |
| <meta http-equiv="Content-Type" content="text/html"> |
| <meta name="description" content="Debugging with GDB"> |
| <meta name="generator" content="makeinfo 4.13"> |
| <link title="Top" rel="start" href="index.html#Top"> |
| <link rel="up" href="Native.html#Native" title="Native"> |
| <link rel="prev" href="BSD-libkvm-Interface.html#BSD-libkvm-Interface" title="BSD libkvm Interface"> |
| <link rel="next" href="DJGPP-Native.html#DJGPP-Native" title="DJGPP Native"> |
| <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> |
| <!-- |
| Copyright (C) 1988-2019 Free Software Foundation, Inc. |
| |
| Permission is granted to copy, distribute and/or modify this document |
| under the terms of the GNU Free Documentation License, Version 1.3 or |
| any later version published by the Free Software Foundation; with the |
| Invariant Sections being ``Free Software'' and ``Free Software Needs |
| Free Documentation'', with the Front-Cover Texts being ``A GNU Manual,'' |
| and with the Back-Cover Texts as in (a) below. |
| |
| (a) The FSF's Back-Cover Text is: ``You are free to copy and modify |
| this GNU Manual. Buying copies from GNU Press supports the FSF in |
| developing GNU and promoting software freedom.'' |
| --> |
| <meta http-equiv="Content-Style-Type" content="text/css"> |
| <style type="text/css"><!-- |
| pre.display { font-family:inherit } |
| pre.format { font-family:inherit } |
| pre.smalldisplay { font-family:inherit; font-size:smaller } |
| pre.smallformat { font-family:inherit; font-size:smaller } |
| pre.smallexample { font-size:smaller } |
| pre.smalllisp { font-size:smaller } |
| span.sc { font-variant:small-caps } |
| span.roman { font-family:serif; font-weight:normal; } |
| span.sansserif { font-family:sans-serif; font-weight:normal; } |
| --></style> |
| </head> |
| <body> |
| <div class="node"> |
| <a name="Process-Information"></a> |
| <p> |
| Next: <a rel="next" accesskey="n" href="DJGPP-Native.html#DJGPP-Native">DJGPP Native</a>, |
| Previous: <a rel="previous" accesskey="p" href="BSD-libkvm-Interface.html#BSD-libkvm-Interface">BSD libkvm Interface</a>, |
| Up: <a rel="up" accesskey="u" href="Native.html#Native">Native</a> |
| <hr> |
| </div> |
| |
| <h4 class="subsection">21.1.2 Process Information</h4> |
| |
| <p><a name="index-g_t_002fproc-1443"></a><a name="index-examine-process-image-1444"></a><a name="index-process-info-via-_0040file_007b_002fproc_007d-1445"></a> |
| Some operating systems provide interfaces to fetch additional |
| information about running processes beyond memory and per-thread |
| register state. If <span class="sc">gdb</span> is configured for an operating system |
| with a supported interface, the command <code>info proc</code> is available |
| to report information about the process running your program, or about |
| any process running on your system. |
| |
| <p>One supported interface is a facility called ‘<samp><span class="samp">/proc</span></samp>’ that can be |
| used to examine the image of a running process using file-system |
| subroutines. This facility is supported on <span class="sc">gnu</span>/Linux and Solaris |
| systems. |
| |
| <p>On FreeBSD systems, system control nodes are used to query process |
| information. |
| |
| <p>In addition, some systems may provide additional process information |
| in core files. Note that a core file may include a subset of the |
| information available from a live process. Process information is |
| currently avaiable from cores created on <span class="sc">gnu</span>/Linux and FreeBSD |
| systems. |
| |
| |
| <a name="index-info-proc-1446"></a> |
| <a name="index-process-ID-1447"></a> |
| <dl><dt><code>info proc</code><dt><code>info proc </code><var>process-id</var><dd>Summarize available information about a process. If a |
| process ID is specified by <var>process-id</var>, display information about |
| that process; otherwise display information about the program being |
| debugged. The summary includes the debugged process ID, the command |
| line used to invoke it, its current working directory, and its |
| executable file's absolute file name. |
| |
| <p>On some systems, <var>process-id</var> can be of the form |
| ‘<samp><span class="samp">[</span><var>pid</var><span class="samp">]/</span><var>tid</var></samp>’ which specifies a certain thread ID |
| within a process. If the optional <var>pid</var> part is missing, it means |
| a thread from the process being debugged (the leading ‘<samp><span class="samp">/</span></samp>’ still |
| needs to be present, or else <span class="sc">gdb</span> will interpret the number as |
| a process ID rather than a thread ID). |
| |
| <br><dt><code>info proc cmdline</code><dd><a name="index-info-proc-cmdline-1448"></a>Show the original command line of the process. This command is |
| supported on <span class="sc">gnu</span>/Linux and FreeBSD. |
| |
| <br><dt><code>info proc cwd</code><dd><a name="index-info-proc-cwd-1449"></a>Show the current working directory of the process. This command is |
| supported on <span class="sc">gnu</span>/Linux and FreeBSD. |
| |
| <br><dt><code>info proc exe</code><dd><a name="index-info-proc-exe-1450"></a>Show the name of executable of the process. This command is supported |
| on <span class="sc">gnu</span>/Linux and FreeBSD. |
| |
| <br><dt><code>info proc files</code><dd><a name="index-info-proc-files-1451"></a>Show the file descriptors open by the process. For each open file |
| descriptor, <span class="sc">gdb</span> shows its number, type (file, directory, |
| character device, socket), file pointer offset, and the name of the |
| resource open on the descriptor. The resource name can be a file name |
| (for files, directories, and devices) or a protocol followed by socket |
| address (for network connections). This command is supported on |
| FreeBSD. |
| |
| <p>This example shows the open file descriptors for a process using a |
| tty for standard input and output as well as two network sockets: |
| |
| <pre class="smallexample"> (gdb) info proc files 22136 |
| process 22136 |
| Open files: |
| |
| FD Type Offset Flags Name |
| text file - r-------- /usr/bin/ssh |
| ctty chr - rw------- /dev/pts/20 |
| cwd dir - r-------- /usr/home/john |
| root dir - r-------- / |
| 0 chr 0x32933a4 rw------- /dev/pts/20 |
| 1 chr 0x32933a4 rw------- /dev/pts/20 |
| 2 chr 0x32933a4 rw------- /dev/pts/20 |
| 3 socket 0x0 rw----n-- tcp4 10.0.1.2:53014 -> 10.0.1.10:22 |
| 4 socket 0x0 rw------- unix stream:/tmp/ssh-FIt89oAzOn5f/agent.2456 |
| </pre> |
| <br><dt><code>info proc mappings</code><dd><a name="index-memory-address-space-mappings-1452"></a>Report the memory address space ranges accessible in a process. On |
| Solaris and FreeBSD systems, each memory range includes information on |
| whether the process has read, write, or execute access rights to each |
| range. On <span class="sc">gnu</span>/Linux and FreeBSD systems, each memory range |
| includes the object file which is mapped to that range. |
| |
| <br><dt><code>info proc stat</code><dt><code>info proc status</code><dd><a name="index-process-detailed-status-information-1453"></a>Show additional process-related information, including the user ID and |
| group ID; virtual memory usage; the signals that are pending, blocked, |
| and ignored; its TTY; its consumption of system and user time; its |
| stack size; its ‘<samp><span class="samp">nice</span></samp>’ value; etc. These commands are supported |
| on <span class="sc">gnu</span>/Linux and FreeBSD. |
| |
| <p>For <span class="sc">gnu</span>/Linux systems, see the ‘<samp><span class="samp">proc</span></samp>’ man page for more |
| information (type <kbd>man 5 proc</kbd> from your shell prompt). |
| |
| <p>For FreeBSD systems, <code>info proc stat</code> is an alias for <code>info |
| proc status</code>. |
| |
| <br><dt><code>info proc all</code><dd>Show all the information about the process described under all of the |
| above <code>info proc</code> subcommands. |
| |
| <br><dt><code>set procfs-trace</code><dd><a name="index-set-procfs_002dtrace-1454"></a><a name="index-g_t_0040code_007bprocfs_007d-API-calls-1455"></a>This command enables and disables tracing of <code>procfs</code> API calls. |
| |
| <br><dt><code>show procfs-trace</code><dd><a name="index-show-procfs_002dtrace-1456"></a>Show the current state of <code>procfs</code> API call tracing. |
| |
| <br><dt><code>set procfs-file </code><var>file</var><dd><a name="index-set-procfs_002dfile-1457"></a>Tell <span class="sc">gdb</span> to write <code>procfs</code> API trace to the named |
| <var>file</var>. <span class="sc">gdb</span> appends the trace info to the previous |
| contents of the file. The default is to display the trace on the |
| standard output. |
| |
| <br><dt><code>show procfs-file</code><dd><a name="index-show-procfs_002dfile-1458"></a>Show the file to which <code>procfs</code> API trace is written. |
| |
| <br><dt><code>proc-trace-entry</code><dt><code>proc-trace-exit</code><dt><code>proc-untrace-entry</code><dt><code>proc-untrace-exit</code><dd><a name="index-proc_002dtrace_002dentry-1459"></a><a name="index-proc_002dtrace_002dexit-1460"></a><a name="index-proc_002duntrace_002dentry-1461"></a><a name="index-proc_002duntrace_002dexit-1462"></a>These commands enable and disable tracing of entries into and exits |
| from the <code>syscall</code> interface. |
| |
| <br><dt><code>info pidlist</code><dd><a name="index-info-pidlist-1463"></a><a name="index-process-list_002c-QNX-Neutrino-1464"></a>For QNX Neutrino only, this command displays the list of all the |
| processes and all the threads within each process. |
| |
| <br><dt><code>info meminfo</code><dd><a name="index-info-meminfo-1465"></a><a name="index-mapinfo-list_002c-QNX-Neutrino-1466"></a>For QNX Neutrino only, this command displays the list of all mapinfos. |
| </dl> |
| |
| </body></html> |
| |