| <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
| <html> |
| <!-- Copyright (C) 1988-2015 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." --> |
| <!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ --> |
| <head> |
| <title>Debugging with GDB: Maintenance Commands</title> |
| |
| <meta name="description" content="Debugging with GDB: Maintenance Commands"> |
| <meta name="keywords" content="Debugging with GDB: Maintenance Commands"> |
| <meta name="resource-type" content="document"> |
| <meta name="distribution" content="global"> |
| <meta name="Generator" content="makeinfo"> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
| <link href="index.html#Top" rel="start" title="Top"> |
| <link href="Concept-Index.html#Concept-Index" rel="index" title="Concept Index"> |
| <link href="index.html#SEC_Contents" rel="contents" title="Table of Contents"> |
| <link href="index.html#Top" rel="up" title="Top"> |
| <link href="Remote-Protocol.html#Remote-Protocol" rel="next" title="Remote Protocol"> |
| <link href="System_002dwide-Configuration-Scripts.html#System_002dwide-Configuration-Scripts" rel="prev" title="System-wide Configuration Scripts"> |
| <style type="text/css"> |
| <!-- |
| a.summary-letter {text-decoration: none} |
| blockquote.smallquotation {font-size: smaller} |
| div.display {margin-left: 3.2em} |
| div.example {margin-left: 3.2em} |
| div.indentedblock {margin-left: 3.2em} |
| div.lisp {margin-left: 3.2em} |
| div.smalldisplay {margin-left: 3.2em} |
| div.smallexample {margin-left: 3.2em} |
| div.smallindentedblock {margin-left: 3.2em; font-size: smaller} |
| div.smalllisp {margin-left: 3.2em} |
| kbd {font-style:oblique} |
| pre.display {font-family: inherit} |
| pre.format {font-family: inherit} |
| pre.menu-comment {font-family: serif} |
| pre.menu-preformatted {font-family: serif} |
| pre.smalldisplay {font-family: inherit; font-size: smaller} |
| pre.smallexample {font-size: smaller} |
| pre.smallformat {font-family: inherit; font-size: smaller} |
| pre.smalllisp {font-size: smaller} |
| span.nocodebreak {white-space:nowrap} |
| span.nolinebreak {white-space:nowrap} |
| span.roman {font-family:serif; font-weight:normal} |
| span.sansserif {font-family:sans-serif; font-weight:normal} |
| ul.no-bullet {list-style: none} |
| --> |
| </style> |
| |
| |
| </head> |
| |
| <body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000"> |
| <a name="Maintenance-Commands"></a> |
| <div class="header"> |
| <p> |
| Next: <a href="Remote-Protocol.html#Remote-Protocol" accesskey="n" rel="next">Remote Protocol</a>, Previous: <a href="Installing-GDB.html#Installing-GDB" accesskey="p" rel="prev">Installing GDB</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p> |
| </div> |
| <hr> |
| <a name="Maintenance-Commands-1"></a> |
| <h2 class="appendix">Appendix D Maintenance Commands</h2> |
| <a name="index-maintenance-commands"></a> |
| <a name="index-internal-commands"></a> |
| |
| <p>In addition to commands intended for <small>GDB</small> users, <small>GDB</small> |
| includes a number of commands intended for <small>GDB</small> developers, |
| that are not documented elsewhere in this manual. These commands are |
| provided here for reference. (For commands that turn on debugging |
| messages, see <a href="Debugging-Output.html#Debugging-Output">Debugging Output</a>.) |
| </p> |
| <dl compact="compact"> |
| <dd><a name="index-maint-agent"></a> |
| <a name="index-maint-agent_002deval"></a> |
| </dd> |
| <dt><code>maint agent <span class="roman">[</span>-at <var>location</var><span class="roman">,</span><span class="roman">]</span> <var>expression</var></code></dt> |
| <dt><code>maint agent-eval <span class="roman">[</span>-at <var>location</var><span class="roman">,</span><span class="roman">]</span> <var>expression</var></code></dt> |
| <dd><p>Translate the given <var>expression</var> into remote agent bytecodes. |
| This command is useful for debugging the Agent Expression mechanism |
| (see <a href="Agent-Expressions.html#Agent-Expressions">Agent Expressions</a>). The ‘<samp>agent</samp>’ version produces an |
| expression useful for data collection, such as by tracepoints, while |
| ‘<samp>maint agent-eval</samp>’ produces an expression that evaluates directly |
| to a result. For instance, a collection expression for <code>globa + |
| globb</code> will include bytecodes to record four bytes of memory at each |
| of the addresses of <code>globa</code> and <code>globb</code>, while discarding |
| the result of the addition, while an evaluation expression will do the |
| addition and return the sum. |
| If <code>-at</code> is given, generate remote agent bytecode for <var>location</var>. |
| If not, generate remote agent bytecode for current frame PC address. |
| </p> |
| <a name="index-maint-agent_002dprintf"></a> |
| </dd> |
| <dt><code>maint agent-printf <var>format</var>,<var>expr</var>,...</code></dt> |
| <dd><p>Translate the given format string and list of argument expressions |
| into remote agent bytecodes and display them as a disassembled list. |
| This command is useful for debugging the agent version of dynamic |
| printf (see <a href="Dynamic-Printf.html#Dynamic-Printf">Dynamic Printf</a>). |
| </p> |
| <a name="index-maint-info-breakpoints"></a> |
| </dd> |
| <dt><code><a name="maint-info-breakpoints"></a>maint info breakpoints</code></dt> |
| <dd><p>Using the same format as ‘<samp>info breakpoints</samp>’, display both the |
| breakpoints you’ve set explicitly, and those <small>GDB</small> is using for |
| internal purposes. Internal breakpoints are shown with negative |
| breakpoint numbers. The type column identifies what kind of breakpoint |
| is shown: |
| </p> |
| <dl compact="compact"> |
| <dt><code>breakpoint</code></dt> |
| <dd><p>Normal, explicitly set breakpoint. |
| </p> |
| </dd> |
| <dt><code>watchpoint</code></dt> |
| <dd><p>Normal, explicitly set watchpoint. |
| </p> |
| </dd> |
| <dt><code>longjmp</code></dt> |
| <dd><p>Internal breakpoint, used to handle correctly stepping through |
| <code>longjmp</code> calls. |
| </p> |
| </dd> |
| <dt><code>longjmp resume</code></dt> |
| <dd><p>Internal breakpoint at the target of a <code>longjmp</code>. |
| </p> |
| </dd> |
| <dt><code>until</code></dt> |
| <dd><p>Temporary internal breakpoint used by the <small>GDB</small> <code>until</code> command. |
| </p> |
| </dd> |
| <dt><code>finish</code></dt> |
| <dd><p>Temporary internal breakpoint used by the <small>GDB</small> <code>finish</code> command. |
| </p> |
| </dd> |
| <dt><code>shlib events</code></dt> |
| <dd><p>Shared library events. |
| </p> |
| </dd> |
| </dl> |
| |
| <a name="index-maint-info-bfds"></a> |
| </dd> |
| <dt><code>maint info bfds</code></dt> |
| <dd><p>This prints information about each <code>bfd</code> object that is known to |
| <small>GDB</small>. See <a href="http://sourceware.org/binutils/docs/bfd/index.html#Top">BFD</a> in <cite>The Binary File Descriptor Library</cite>. |
| </p> |
| <a name="index-maint-info-btrace"></a> |
| </dd> |
| <dt><code>maint info btrace</code></dt> |
| <dd><p>Pint information about raw branch tracing data. |
| </p> |
| <a name="index-maint-btrace-packet_002dhistory"></a> |
| </dd> |
| <dt><code>maint btrace packet-history</code></dt> |
| <dd><p>Print the raw branch trace packets that are used to compute the |
| execution history for the ‘<samp>record btrace</samp>’ command. Both the |
| information and the format in which it is printed depend on the btrace |
| recording format. |
| </p> |
| <dl compact="compact"> |
| <dt><code>bts</code></dt> |
| <dd><p>For the BTS recording format, print a list of blocks of sequential |
| code. For each block, the following information is printed: |
| </p> |
| <dl compact="compact"> |
| <dt>Block number</dt> |
| <dd><p>Newer blocks have higher numbers. The oldest block has number zero. |
| </p></dd> |
| <dt>Lowest ‘<samp>PC</samp>’</dt> |
| <dt>Highest ‘<samp>PC</samp>’</dt> |
| </dl> |
| |
| </dd> |
| <dt><code>pt</code></dt> |
| <dd><p>For the Intel(R) Processor Trace recording format, print a list of |
| Intel(R) Processor Trace packets. For each packet, the following |
| information is printed: |
| </p> |
| <dl compact="compact"> |
| <dt>Packet number</dt> |
| <dd><p>Newer packets have higher numbers. The oldest packet has number zero. |
| </p></dd> |
| <dt>Trace offset</dt> |
| <dd><p>The packet’s offset in the trace stream. |
| </p></dd> |
| <dt>Packet opcode and payload</dt> |
| </dl> |
| </dd> |
| </dl> |
| |
| <a name="index-maint-btrace-clear_002dpacket_002dhistory"></a> |
| </dd> |
| <dt><code>maint btrace clear-packet-history</code></dt> |
| <dd><p>Discards the cached packet history printed by the ‘<samp>maint btrace |
| packet-history</samp>’ command. The history will be computed again when |
| needed. |
| </p> |
| <a name="index-maint-btrace-clear"></a> |
| </dd> |
| <dt><code>maint btrace clear</code></dt> |
| <dd><p>Discard the branch trace data. The data will be fetched anew and the |
| branch trace will be recomputed when needed. |
| </p> |
| <p>This implicitly truncates the branch trace to a single branch trace |
| buffer. When updating branch trace incrementally, the branch trace |
| available to <small>GDB</small> may be bigger than a single branch trace |
| buffer. |
| </p> |
| <a name="index-maint-set-btrace-pt-skip_002dpad"></a> |
| </dd> |
| <dt><code>maint set btrace pt skip-pad</code></dt> |
| <dd><a name="index-maint-show-btrace-pt-skip_002dpad"></a> |
| </dd> |
| <dt><code>maint show btrace pt skip-pad</code></dt> |
| <dd><p>Control whether <small>GDB</small> will skip PAD packets when computing the |
| packet history. |
| </p> |
| <a name="index-set-displaced_002dstepping"></a> |
| <a name="index-show-displaced_002dstepping"></a> |
| <a name="index-displaced-stepping-support"></a> |
| <a name="index-out_002dof_002dline-single_002dstepping"></a> |
| </dd> |
| <dt><code>set displaced-stepping</code></dt> |
| <dt><code>show displaced-stepping</code></dt> |
| <dd><p>Control whether or not <small>GDB</small> will do <em>displaced stepping</em> |
| if the target supports it. Displaced stepping is a way to single-step |
| over breakpoints without removing them from the inferior, by executing |
| an out-of-line copy of the instruction that was originally at the |
| breakpoint location. It is also known as out-of-line single-stepping. |
| </p> |
| <dl compact="compact"> |
| <dt><code>set displaced-stepping on</code></dt> |
| <dd><p>If the target architecture supports it, <small>GDB</small> will use |
| displaced stepping to step over breakpoints. |
| </p> |
| </dd> |
| <dt><code>set displaced-stepping off</code></dt> |
| <dd><p><small>GDB</small> will not use displaced stepping to step over breakpoints, |
| even if such is supported by the target architecture. |
| </p> |
| <a name="index-non_002dstop-mode_002c-and-set-displaced_002dstepping"></a> |
| </dd> |
| <dt><code>set displaced-stepping auto</code></dt> |
| <dd><p>This is the default mode. <small>GDB</small> will use displaced stepping |
| only if non-stop mode is active (see <a href="Non_002dStop-Mode.html#Non_002dStop-Mode">Non-Stop Mode</a>) and the target |
| architecture supports displaced stepping. |
| </p></dd> |
| </dl> |
| |
| <a name="index-maint-check_002dpsymtabs"></a> |
| </dd> |
| <dt><code>maint check-psymtabs</code></dt> |
| <dd><p>Check the consistency of currently expanded psymtabs versus symtabs. |
| Use this to check, for example, whether a symbol is in one but not the other. |
| </p> |
| <a name="index-maint-check_002dsymtabs"></a> |
| </dd> |
| <dt><code>maint check-symtabs</code></dt> |
| <dd><p>Check the consistency of currently expanded symtabs. |
| </p> |
| <a name="index-maint-expand_002dsymtabs"></a> |
| </dd> |
| <dt><code>maint expand-symtabs [<var>regexp</var>]</code></dt> |
| <dd><p>Expand symbol tables. |
| If <var>regexp</var> is specified, only expand symbol tables for file |
| names matching <var>regexp</var>. |
| </p> |
| <a name="index-maint-set-catch_002ddemangler_002dcrashes"></a> |
| <a name="index-maint-show-catch_002ddemangler_002dcrashes"></a> |
| <a name="index-demangler-crashes"></a> |
| </dd> |
| <dt><code>maint set catch-demangler-crashes [on|off]</code></dt> |
| <dt><code>maint show catch-demangler-crashes</code></dt> |
| <dd><p>Control whether <small>GDB</small> should attempt to catch crashes in the |
| symbol name demangler. The default is to attempt to catch crashes. |
| If enabled, the first time a crash is caught, a core file is created, |
| the offending symbol is displayed and the user is presented with the |
| option to terminate the current session. |
| </p> |
| <a name="index-maint-cplus-first_005fcomponent"></a> |
| </dd> |
| <dt><code>maint cplus first_component <var>name</var></code></dt> |
| <dd><p>Print the first C<tt>++</tt> class/namespace component of <var>name</var>. |
| </p> |
| <a name="index-maint-cplus-namespace"></a> |
| </dd> |
| <dt><code>maint cplus namespace</code></dt> |
| <dd><p>Print the list of possible C<tt>++</tt> namespaces. |
| </p> |
| <a name="index-maint-deprecate"></a> |
| <a name="index-maint-undeprecate"></a> |
| <a name="index-deprecated-commands"></a> |
| </dd> |
| <dt><code>maint deprecate <var>command</var> <span class="roman">[</span><var>replacement</var><span class="roman">]</span></code></dt> |
| <dt><code>maint undeprecate <var>command</var></code></dt> |
| <dd><p>Deprecate or undeprecate the named <var>command</var>. Deprecated commands |
| cause <small>GDB</small> to issue a warning when you use them. The optional |
| argument <var>replacement</var> says which newer command should be used in |
| favor of the deprecated one; if it is given, <small>GDB</small> will mention |
| the replacement as part of the warning. |
| </p> |
| <a name="index-maint-dump_002dme"></a> |
| </dd> |
| <dt><code>maint dump-me</code></dt> |
| <dd><a name="index-SIGQUIT-signal_002c-dump-core-of-GDB"></a> |
| <p>Cause a fatal signal in the debugger and force it to dump its core. |
| This is supported only on systems which support aborting a program |
| with the <code>SIGQUIT</code> signal. |
| </p> |
| <a name="index-maint-internal_002derror"></a> |
| <a name="index-maint-internal_002dwarning"></a> |
| <a name="index-maint-demangler_002dwarning"></a> |
| <a name="index-demangler-crashes-1"></a> |
| </dd> |
| <dt><code>maint internal-error <span class="roman">[</span><var>message-text</var><span class="roman">]</span></code></dt> |
| <dt><code>maint internal-warning <span class="roman">[</span><var>message-text</var><span class="roman">]</span></code></dt> |
| <dt><code>maint demangler-warning <span class="roman">[</span><var>message-text</var><span class="roman">]</span></code></dt> |
| <dd> |
| <p>Cause <small>GDB</small> to call the internal function <code>internal_error</code>, |
| <code>internal_warning</code> or <code>demangler_warning</code> and hence behave |
| as though an internal problem has been detected. In addition to |
| reporting the internal problem, these functions give the user the |
| opportunity to either quit <small>GDB</small> or (for <code>internal_error</code> |
| and <code>internal_warning</code>) create a core file of the current |
| <small>GDB</small> session. |
| </p> |
| <p>These commands take an optional parameter <var>message-text</var> that is |
| used as the text of the error or warning message. |
| </p> |
| <p>Here’s an example of using <code>internal-error</code>: |
| </p> |
| <div class="smallexample"> |
| <pre class="smallexample">(gdb) <kbd>maint internal-error testing, 1, 2</kbd> |
| …/maint.c:121: internal-error: testing, 1, 2 |
| A problem internal to GDB has been detected. Further |
| debugging may prove unreliable. |
| Quit this debugging session? (y or n) <kbd>n</kbd> |
| Create a core file? (y or n) <kbd>n</kbd> |
| (gdb) |
| </pre></div> |
| |
| <a name="index-GDB-internal-error"></a> |
| <a name="index-internal-errors_002c-control-of-GDB-behavior"></a> |
| <a name="index-demangler-crashes-2"></a> |
| |
| <a name="index-maint-set-internal_002derror"></a> |
| <a name="index-maint-show-internal_002derror"></a> |
| <a name="index-maint-set-internal_002dwarning"></a> |
| <a name="index-maint-show-internal_002dwarning"></a> |
| <a name="index-maint-set-demangler_002dwarning"></a> |
| <a name="index-maint-show-demangler_002dwarning"></a> |
| </dd> |
| <dt><code>maint set internal-error <var>action</var> [ask|yes|no]</code></dt> |
| <dt><code>maint show internal-error <var>action</var></code></dt> |
| <dt><code>maint set internal-warning <var>action</var> [ask|yes|no]</code></dt> |
| <dt><code>maint show internal-warning <var>action</var></code></dt> |
| <dt><code>maint set demangler-warning <var>action</var> [ask|yes|no]</code></dt> |
| <dt><code>maint show demangler-warning <var>action</var></code></dt> |
| <dd><p>When <small>GDB</small> reports an internal problem (error or warning) it |
| gives the user the opportunity to both quit <small>GDB</small> and create a |
| core file of the current <small>GDB</small> session. These commands let you |
| override the default behaviour for each particular <var>action</var>, |
| described in the table below. |
| </p> |
| <dl compact="compact"> |
| <dt>‘<samp>quit</samp>’</dt> |
| <dd><p>You can specify that <small>GDB</small> should always (yes) or never (no) |
| quit. The default is to ask the user what to do. |
| </p> |
| </dd> |
| <dt>‘<samp>corefile</samp>’</dt> |
| <dd><p>You can specify that <small>GDB</small> should always (yes) or never (no) |
| create a core file. The default is to ask the user what to do. Note |
| that there is no <code>corefile</code> option for <code>demangler-warning</code>: |
| demangler warnings always create a core file and this cannot be |
| disabled. |
| </p></dd> |
| </dl> |
| |
| <a name="index-maint-packet"></a> |
| </dd> |
| <dt><code>maint packet <var>text</var></code></dt> |
| <dd><p>If <small>GDB</small> is talking to an inferior via the serial protocol, |
| then this command sends the string <var>text</var> to the inferior, and |
| displays the response packet. <small>GDB</small> supplies the initial |
| ‘<samp>$</samp>’ character, the terminating ‘<samp>#</samp>’ character, and the |
| checksum. |
| </p> |
| <a name="index-maint-print-architecture"></a> |
| </dd> |
| <dt><code>maint print architecture <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt> |
| <dd><p>Print the entire architecture configuration. The optional argument |
| <var>file</var> names the file where the output goes. |
| </p> |
| <a name="index-maint-print-c_002dtdesc"></a> |
| </dd> |
| <dt><code>maint print c-tdesc</code></dt> |
| <dd><p>Print the current target description (see <a href="Target-Descriptions.html#Target-Descriptions">Target Descriptions</a>) as |
| a C source file. The created source file can be used in <small>GDB</small> |
| when an XML parser is not available to parse the description. |
| </p> |
| <a name="index-maint-print-dummy_002dframes"></a> |
| </dd> |
| <dt><code>maint print dummy-frames</code></dt> |
| <dd><p>Prints the contents of <small>GDB</small>’s internal dummy-frame stack. |
| </p> |
| <div class="smallexample"> |
| <pre class="smallexample">(gdb) <kbd>b add</kbd> |
| … |
| (gdb) <kbd>print add(2,3)</kbd> |
| Breakpoint 2, add (a=2, b=3) at … |
| 58 return (a + b); |
| The program being debugged stopped while in a function called from GDB. |
| … |
| (gdb) <kbd>maint print dummy-frames</kbd> |
| 0xa8206d8: id={stack=0xbfffe734,code=0xbfffe73f,!special}, ptid=process 9353 |
| (gdb) |
| </pre></div> |
| |
| <p>Takes an optional file parameter. |
| </p> |
| <a name="index-maint-print-registers"></a> |
| <a name="index-maint-print-raw_002dregisters"></a> |
| <a name="index-maint-print-cooked_002dregisters"></a> |
| <a name="index-maint-print-register_002dgroups"></a> |
| <a name="index-maint-print-remote_002dregisters"></a> |
| </dd> |
| <dt><code>maint print registers <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt> |
| <dt><code>maint print raw-registers <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt> |
| <dt><code>maint print cooked-registers <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt> |
| <dt><code>maint print register-groups <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt> |
| <dt><code>maint print remote-registers <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt> |
| <dd><p>Print <small>GDB</small>’s internal register data structures. |
| </p> |
| <p>The command <code>maint print raw-registers</code> includes the contents of |
| the raw register cache; the command <code>maint print |
| cooked-registers</code> includes the (cooked) value of all registers, |
| including registers which aren’t available on the target nor visible |
| to user; the command <code>maint print register-groups</code> includes the |
| groups that each register is a member of; and the command <code>maint |
| print remote-registers</code> includes the remote target’s register numbers |
| and offsets in the ‘G’ packets. |
| </p> |
| <p>These commands take an optional parameter, a file name to which to |
| write the information. |
| </p> |
| <a name="index-maint-print-reggroups"></a> |
| </dd> |
| <dt><code>maint print reggroups <span class="roman">[</span><var>file</var><span class="roman">]</span></code></dt> |
| <dd><p>Print <small>GDB</small>’s internal register group data structures. The |
| optional argument <var>file</var> tells to what file to write the |
| information. |
| </p> |
| <p>The register groups info looks like this: |
| </p> |
| <div class="smallexample"> |
| <pre class="smallexample">(gdb) <kbd>maint print reggroups</kbd> |
| Group Type |
| general user |
| float user |
| all user |
| vector user |
| system user |
| save internal |
| restore internal |
| </pre></div> |
| |
| <a name="index-flushregs"></a> |
| </dd> |
| <dt><code>flushregs</code></dt> |
| <dd><p>This command forces <small>GDB</small> to flush its internal register cache. |
| </p> |
| <a name="index-maint-print-objfiles"></a> |
| <a name="index-info-for-known-object-files"></a> |
| </dd> |
| <dt><code>maint print objfiles <span class="roman">[</span><var>regexp</var><span class="roman">]</span></code></dt> |
| <dd><p>Print a dump of all known object files. |
| If <var>regexp</var> is specified, only print object files whose names |
| match <var>regexp</var>. For each object file, this command prints its name, |
| address in memory, and all of its psymtabs and symtabs. |
| </p> |
| <a name="index-maint-print-user_002dregisters"></a> |
| <a name="index-user-registers"></a> |
| </dd> |
| <dt><code>maint print user-registers</code></dt> |
| <dd><p>List all currently available <em>user registers</em>. User registers |
| typically provide alternate names for actual hardware registers. They |
| include the four “standard” registers <code>$fp</code>, <code>$pc</code>, |
| <code>$sp</code>, and <code>$ps</code>. See <a href="Registers.html#standard-registers">standard registers</a>. User |
| registers can be used in expressions in the same way as the canonical |
| register names, but only the latter are listed by the <code>info |
| registers</code> and <code>maint print registers</code> commands. |
| </p> |
| <a name="index-maint-print-section_002dscripts"></a> |
| <a name="index-info-for-known-_002edebug_005fgdb_005fscripts_002dloaded-scripts"></a> |
| </dd> |
| <dt><code>maint print section-scripts [<var>regexp</var>]</code></dt> |
| <dd><p>Print a dump of scripts specified in the <code>.debug_gdb_section</code> section. |
| If <var>regexp</var> is specified, only print scripts loaded by object files |
| matching <var>regexp</var>. |
| For each script, this command prints its name as specified in the objfile, |
| and the full path if known. |
| See <a href="dotdebug_005fgdb_005fscripts-section.html#dotdebug_005fgdb_005fscripts-section">dotdebug_gdb_scripts section</a>. |
| </p> |
| <a name="index-maint-print-statistics"></a> |
| <a name="index-bcache-statistics"></a> |
| </dd> |
| <dt><code>maint print statistics</code></dt> |
| <dd><p>This command prints, for each object file in the program, various data |
| about that object file followed by the byte cache (<em>bcache</em>) |
| statistics for the object file. The objfile data includes the number |
| of minimal, partial, full, and stabs symbols, the number of types |
| defined by the objfile, the number of as yet unexpanded psym tables, |
| the number of line tables and string tables, and the amount of memory |
| used by the various tables. The bcache statistics include the counts, |
| sizes, and counts of duplicates of all and unique objects, max, |
| average, and median entry size, total memory used and its overhead and |
| savings, and various measures of the hash table size and chain |
| lengths. |
| </p> |
| <a name="index-maint-print-target_002dstack"></a> |
| <a name="index-target-stack-description"></a> |
| </dd> |
| <dt><code>maint print target-stack</code></dt> |
| <dd><p>A <em>target</em> is an interface between the debugger and a particular |
| kind of file or process. Targets can be stacked in <em>strata</em>, |
| so that more than one target can potentially respond to a request. |
| In particular, memory accesses will walk down the stack of targets |
| until they find a target that is interested in handling that particular |
| address. |
| </p> |
| <p>This command prints a short description of each layer that was pushed on |
| the <em>target stack</em>, starting from the top layer down to the bottom one. |
| </p> |
| <a name="index-maint-print-type"></a> |
| <a name="index-type-chain-of-a-data-type"></a> |
| </dd> |
| <dt><code>maint print type <var>expr</var></code></dt> |
| <dd><p>Print the type chain for a type specified by <var>expr</var>. The argument |
| can be either a type name or a symbol. If it is a symbol, the type of |
| that symbol is described. The type chain produced by this command is |
| a recursive definition of the data type as stored in <small>GDB</small>’s |
| data structures, including its flags and contained types. |
| </p> |
| <a name="index-maint-set-dwarf-always_002ddisassemble"></a> |
| <a name="index-maint-show-dwarf-always_002ddisassemble"></a> |
| </dd> |
| <dt><code>maint set dwarf always-disassemble</code></dt> |
| <dt><code>maint show dwarf always-disassemble</code></dt> |
| <dd><p>Control the behavior of <code>info address</code> when using DWARF debugging |
| information. |
| </p> |
| <p>The default is <code>off</code>, which means that <small>GDB</small> should try to |
| describe a variable’s location in an easily readable format. When |
| <code>on</code>, <small>GDB</small> will instead display the DWARF location |
| expression in an assembly-like format. Note that some locations are |
| too complex for <small>GDB</small> to describe simply; in this case you will |
| always see the disassembly form. |
| </p> |
| <p>Here is an example of the resulting disassembly: |
| </p> |
| <div class="smallexample"> |
| <pre class="smallexample">(gdb) info addr argc |
| Symbol "argc" is a complex DWARF expression: |
| 1: DW_OP_fbreg 0 |
| </pre></div> |
| |
| <p>For more information on these expressions, see |
| <a href="http://www.dwarfstd.org/">the DWARF standard</a>. |
| </p> |
| <a name="index-maint-set-dwarf-max_002dcache_002dage"></a> |
| <a name="index-maint-show-dwarf-max_002dcache_002dage"></a> |
| </dd> |
| <dt><code>maint set dwarf max-cache-age</code></dt> |
| <dt><code>maint show dwarf max-cache-age</code></dt> |
| <dd><p>Control the DWARF compilation unit cache. |
| </p> |
| <a name="index-DWARF-compilation-units-cache"></a> |
| <p>In object files with inter-compilation-unit references, such as those |
| produced by the GCC option ‘<samp>-feliminate-dwarf2-dups</samp>’, the DWARF |
| reader needs to frequently refer to previously read compilation units. |
| This setting controls how long a compilation unit will remain in the |
| cache if it is not referenced. A higher limit means that cached |
| compilation units will be stored in memory longer, and more total |
| memory will be used. Setting it to zero disables caching, which will |
| slow down <small>GDB</small> startup, but reduce memory consumption. |
| </p> |
| <a name="index-maint-set-profile"></a> |
| <a name="index-maint-show-profile"></a> |
| <a name="index-profiling-GDB"></a> |
| </dd> |
| <dt><code>maint set profile</code></dt> |
| <dt><code>maint show profile</code></dt> |
| <dd><p>Control profiling of <small>GDB</small>. |
| </p> |
| <p>Profiling will be disabled until you use the ‘<samp>maint set profile</samp>’ |
| command to enable it. When you enable profiling, the system will begin |
| collecting timing and execution count data; when you disable profiling or |
| exit <small>GDB</small>, the results will be written to a log file. Remember that |
| if you use profiling, <small>GDB</small> will overwrite the profiling log file |
| (often called <samp>gmon.out</samp>). If you have a record of important profiling |
| data in a <samp>gmon.out</samp> file, be sure to move it to a safe location. |
| </p> |
| <p>Configuring with ‘<samp>--enable-profiling</samp>’ arranges for <small>GDB</small> to be |
| compiled with the ‘<samp>-pg</samp>’ compiler option. |
| </p> |
| <a name="index-maint-set-show_002ddebug_002dregs"></a> |
| <a name="index-maint-show-show_002ddebug_002dregs"></a> |
| <a name="index-hardware-debug-registers"></a> |
| </dd> |
| <dt><code>maint set show-debug-regs</code></dt> |
| <dt><code>maint show show-debug-regs</code></dt> |
| <dd><p>Control whether to show variables that mirror the hardware debug |
| registers. Use <code>on</code> to enable, <code>off</code> to disable. If |
| enabled, the debug registers values are shown when <small>GDB</small> inserts or |
| removes a hardware breakpoint or watchpoint, and when the inferior |
| triggers a hardware-assisted breakpoint or watchpoint. |
| </p> |
| <a name="index-maint-set-show_002dall_002dtib"></a> |
| <a name="index-maint-show-show_002dall_002dtib"></a> |
| </dd> |
| <dt><code>maint set show-all-tib</code></dt> |
| <dt><code>maint show show-all-tib</code></dt> |
| <dd><p>Control whether to show all non zero areas within a 1k block starting |
| at thread local base, when using the ‘<samp>info w32 thread-information-block</samp>’ |
| command. |
| </p> |
| <a name="index-maint-set-target_002dasync"></a> |
| <a name="index-maint-show-target_002dasync"></a> |
| </dd> |
| <dt><code>maint set target-async</code></dt> |
| <dt><code>maint show target-async</code></dt> |
| <dd><p>This controls whether <small>GDB</small> targets operate in synchronous or |
| asynchronous mode (see <a href="Background-Execution.html#Background-Execution">Background Execution</a>). Normally the |
| default is asynchronous, if it is available; but this can be changed |
| to more easily debug problems occurring only in synchronous mode. |
| </p> |
| <a name="index-maint-set-per_002dcommand"></a> |
| <a name="index-maint-show-per_002dcommand"></a> |
| </dd> |
| <dt><code>maint set per-command</code></dt> |
| <dt><code>maint show per-command</code></dt> |
| <dd><a name="index-resources-used-by-commands"></a> |
| |
| <p><small>GDB</small> can display the resources used by each command. |
| This is useful in debugging performance problems. |
| </p> |
| <dl compact="compact"> |
| <dt><code>maint set per-command space [on|off]</code></dt> |
| <dt><code>maint show per-command space</code></dt> |
| <dd><p>Enable or disable the printing of the memory used by GDB for each command. |
| If enabled, <small>GDB</small> will display how much memory each command |
| took, following the command’s own output. |
| This can also be requested by invoking <small>GDB</small> with the |
| <samp>--statistics</samp> command-line switch (see <a href="Mode-Options.html#Mode-Options">Mode Options</a>). |
| </p> |
| </dd> |
| <dt><code>maint set per-command time [on|off]</code></dt> |
| <dt><code>maint show per-command time</code></dt> |
| <dd><p>Enable or disable the printing of the execution time of <small>GDB</small> |
| for each command. |
| If enabled, <small>GDB</small> will display how much time it |
| took to execute each command, following the command’s own output. |
| Both CPU time and wallclock time are printed. |
| Printing both is useful when trying to determine whether the cost is |
| CPU or, e.g., disk/network latency. |
| Note that the CPU time printed is for <small>GDB</small> only, it does not include |
| the execution time of the inferior because there’s no mechanism currently |
| to compute how much time was spent by <small>GDB</small> and how much time was |
| spent by the program been debugged. |
| This can also be requested by invoking <small>GDB</small> with the |
| <samp>--statistics</samp> command-line switch (see <a href="Mode-Options.html#Mode-Options">Mode Options</a>). |
| </p> |
| </dd> |
| <dt><code>maint set per-command symtab [on|off]</code></dt> |
| <dt><code>maint show per-command symtab</code></dt> |
| <dd><p>Enable or disable the printing of basic symbol table statistics |
| for each command. |
| If enabled, <small>GDB</small> will display the following information: |
| </p> |
| <ol> |
| <li> number of symbol tables |
| </li><li> number of primary symbol tables |
| </li><li> number of blocks in the blockvector |
| </li></ol> |
| </dd> |
| </dl> |
| |
| <a name="index-maint-space"></a> |
| <a name="index-memory-used-by-commands"></a> |
| </dd> |
| <dt><code>maint space <var>value</var></code></dt> |
| <dd><p>An alias for <code>maint set per-command space</code>. |
| A non-zero value enables it, zero disables it. |
| </p> |
| <a name="index-maint-time"></a> |
| <a name="index-time-of-command-execution"></a> |
| </dd> |
| <dt><code>maint time <var>value</var></code></dt> |
| <dd><p>An alias for <code>maint set per-command time</code>. |
| A non-zero value enables it, zero disables it. |
| </p> |
| <a name="index-maint-translate_002daddress"></a> |
| </dd> |
| <dt><code>maint translate-address <span class="roman">[</span><var>section</var><span class="roman">]</span> <var>addr</var></code></dt> |
| <dd><p>Find the symbol stored at the location specified by the address |
| <var>addr</var> and an optional section name <var>section</var>. If found, |
| <small>GDB</small> prints the name of the closest symbol and an offset from |
| the symbol’s location to the specified address. This is similar to |
| the <code>info address</code> command (see <a href="Symbols.html#Symbols">Symbols</a>), except that this |
| command also allows to find symbols in other sections. |
| </p> |
| <p>If section was not specified, the section in which the symbol was found |
| is also printed. For dynamically linked executables, the name of |
| executable or shared library containing the symbol is printed as well. |
| </p> |
| </dd> |
| </dl> |
| |
| <p>The following command is useful for non-interactive invocations of |
| <small>GDB</small>, such as in the test suite. |
| </p> |
| <dl compact="compact"> |
| <dt><code>set watchdog <var>nsec</var></code></dt> |
| <dd><a name="index-set-watchdog"></a> |
| <a name="index-watchdog-timer"></a> |
| <a name="index-timeout-for-commands"></a> |
| <p>Set the maximum number of seconds <small>GDB</small> will wait for the |
| target operation to finish. If this time expires, <small>GDB</small> |
| reports and error and the command is aborted. |
| </p> |
| </dd> |
| <dt><code>show watchdog</code></dt> |
| <dd><p>Show the current setting of the target wait timeout. |
| </p></dd> |
| </dl> |
| |
| <hr> |
| <div class="header"> |
| <p> |
| Next: <a href="Remote-Protocol.html#Remote-Protocol" accesskey="n" rel="next">Remote Protocol</a>, Previous: <a href="Installing-GDB.html#Installing-GDB" accesskey="p" rel="prev">Installing GDB</a>, Up: <a href="index.html#Top" accesskey="u" rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html#Concept-Index" title="Index" rel="index">Index</a>]</p> |
| </div> |
| |
| |
| |
| </body> |
| </html> |