| <html lang="en"> |
| <head> |
| <title>Maintenance Commands - 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="prev" href="Installing-GDB.html#Installing-GDB" title="Installing GDB"> |
| <link rel="next" href="Remote-Protocol.html#Remote-Protocol" title="Remote Protocol"> |
| <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="Maintenance-Commands"></a> |
| <p> |
| Next: <a rel="next" accesskey="n" href="Remote-Protocol.html#Remote-Protocol">Remote Protocol</a>, |
| Previous: <a rel="previous" accesskey="p" href="Installing-GDB.html#Installing-GDB">Installing GDB</a>, |
| Up: <a rel="up" accesskey="u" href="index.html#Top">Top</a> |
| <hr> |
| </div> |
| |
| <h2 class="appendix">Appendix D Maintenance Commands</h2> |
| |
| <p><a name="index-maintenance-commands-3309"></a><a name="index-internal-commands-3310"></a> |
| In addition to commands intended for <span class="sc">gdb</span> users, <span class="sc">gdb</span> |
| includes a number of commands intended for <span class="sc">gdb</span> 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>.) |
| |
| |
| <a name="index-maint-agent-3311"></a> |
| <a name="index-maint-agent_002deval-3312"></a> |
| <dl><dt><code>maint agent </code><span class="roman">[</span><code>-at </code><var>location</var><span class="roman">,</span><span class="roman">]</span> <var>expression</var><dt><code>maint agent-eval </code><span class="roman">[</span><code>-at </code><var>location</var><span class="roman">,</span><span class="roman">]</span> <var>expression</var><dd>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><span class="samp">agent</span></samp>’ version produces an |
| expression useful for data collection, such as by tracepoints, while |
| ‘<samp><span class="samp">maint agent-eval</span></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-3313"></a><br><dt><code>maint agent-printf </code><var>format</var><code>,</code><var>expr</var><code>,...</code><dd>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-3314"></a><br><dt><code><a name="maint-info-breakpoints"></a>maint info breakpoints</code><dd>Using the same format as ‘<samp><span class="samp">info breakpoints</span></samp>’, display both the |
| breakpoints you've set explicitly, and those <span class="sc">gdb</span> is using for |
| internal purposes. Internal breakpoints are shown with negative |
| breakpoint numbers. The type column identifies what kind of breakpoint |
| is shown: |
| |
| <dl> |
| <dt><code>breakpoint</code><dd>Normal, explicitly set breakpoint. |
| |
| <br><dt><code>watchpoint</code><dd>Normal, explicitly set watchpoint. |
| |
| <br><dt><code>longjmp</code><dd>Internal breakpoint, used to handle correctly stepping through |
| <code>longjmp</code> calls. |
| |
| <br><dt><code>longjmp resume</code><dd>Internal breakpoint at the target of a <code>longjmp</code>. |
| |
| <br><dt><code>until</code><dd>Temporary internal breakpoint used by the <span class="sc">gdb</span> <code>until</code> command. |
| |
| <br><dt><code>finish</code><dd>Temporary internal breakpoint used by the <span class="sc">gdb</span> <code>finish</code> command. |
| |
| <br><dt><code>shlib events</code><dd>Shared library events. |
| |
| </dl> |
| |
| <p><a name="index-maint-info-btrace-3315"></a><br><dt><code>maint info btrace</code><dd>Pint information about raw branch tracing data. |
| |
| <p><a name="index-maint-btrace-packet_002dhistory-3316"></a><br><dt><code>maint btrace packet-history</code><dd>Print the raw branch trace packets that are used to compute the |
| execution history for the ‘<samp><span class="samp">record btrace</span></samp>’ command. Both the |
| information and the format in which it is printed depend on the btrace |
| recording format. |
| |
| <dl> |
| <dt><code>bts</code><dd>For the BTS recording format, print a list of blocks of sequential |
| code. For each block, the following information is printed: |
| |
| <dl> |
| <dt>Block number<dd>Newer blocks have higher numbers. The oldest block has number zero. |
| <br><dt>Lowest ‘<samp><span class="samp">PC</span></samp>’<br><dt>Highest ‘<samp><span class="samp">PC</span></samp>’<dd></dl> |
| |
| <br><dt><code>pt</code><dd>For the Intel Processor Trace recording format, print a list of |
| Intel Processor Trace packets. For each packet, the following |
| information is printed: |
| |
| <dl> |
| <dt>Packet number<dd>Newer packets have higher numbers. The oldest packet has number zero. |
| <br><dt>Trace offset<dd>The packet's offset in the trace stream. |
| <br><dt>Packet opcode and payload<dd></dl> |
| </dl> |
| |
| <p><a name="index-maint-btrace-clear_002dpacket_002dhistory-3317"></a><br><dt><code>maint btrace clear-packet-history</code><dd>Discards the cached packet history printed by the ‘<samp><span class="samp">maint btrace |
| packet-history</span></samp>’ command. The history will be computed again when |
| needed. |
| |
| <p><a name="index-maint-btrace-clear-3318"></a><br><dt><code>maint btrace clear</code><dd>Discard the branch trace data. The data will be fetched anew and the |
| branch trace will be recomputed when needed. |
| |
| <p>This implicitly truncates the branch trace to a single branch trace |
| buffer. When updating branch trace incrementally, the branch trace |
| available to <span class="sc">gdb</span> may be bigger than a single branch trace |
| buffer. |
| |
| <p><a name="index-maint-set-btrace-pt-skip_002dpad-3319"></a><br><dt><code>maint set btrace pt skip-pad</code><dd><a name="index-maint-show-btrace-pt-skip_002dpad-3320"></a><br><dt><code>maint show btrace pt skip-pad</code><dd>Control whether <span class="sc">gdb</span> will skip PAD packets when computing the |
| packet history. |
| |
| <p><a name="index-set-displaced_002dstepping-3321"></a><a name="index-show-displaced_002dstepping-3322"></a><a name="index-displaced-stepping-support-3323"></a><a name="index-out_002dof_002dline-single_002dstepping-3324"></a><br><dt><code>set displaced-stepping</code><dt><code>show displaced-stepping</code><dd>Control whether or not <span class="sc">gdb</span> will do <dfn>displaced stepping</dfn> |
| 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. |
| |
| <dl> |
| <dt><code>set displaced-stepping on</code><dd>If the target architecture supports it, <span class="sc">gdb</span> will use |
| displaced stepping to step over breakpoints. |
| |
| <br><dt><code>set displaced-stepping off</code><dd><span class="sc">gdb</span> 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-_0040samp_007bset-displaced_002dstepping_007d-3325"></a><br><dt><code>set displaced-stepping auto</code><dd>This is the default mode. <span class="sc">gdb</span> 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. |
| </dl> |
| |
| <p><a name="index-maint-check_002dpsymtabs-3326"></a><br><dt><code>maint check-psymtabs</code><dd>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-3327"></a><br><dt><code>maint check-symtabs</code><dd>Check the consistency of currently expanded symtabs. |
| |
| <p><a name="index-maint-expand_002dsymtabs-3328"></a><br><dt><code>maint expand-symtabs [</code><var>regexp</var><code>]</code><dd>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-3329"></a><a name="index-maint-show-catch_002ddemangler_002dcrashes-3330"></a><a name="index-demangler-crashes-3331"></a><br><dt><code>maint set catch-demangler-crashes [on|off]</code><dt><code>maint show catch-demangler-crashes</code><dd>Control whether <span class="sc">gdb</span> 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-3332"></a><br><dt><code>maint cplus first_component </code><var>name</var><dd>Print the first C<tt>++</tt> class/namespace component of <var>name</var>. |
| |
| <p><a name="index-maint-cplus-namespace-3333"></a><br><dt><code>maint cplus namespace</code><dd>Print the list of possible C<tt>++</tt> namespaces. |
| |
| <p><a name="index-maint-deprecate-3334"></a><a name="index-maint-undeprecate-3335"></a><a name="index-deprecated-commands-3336"></a><br><dt><code>maint deprecate </code><var>command</var> <span class="roman">[</span><var>replacement</var><span class="roman">]</span><dt><code>maint undeprecate </code><var>command</var><dd>Deprecate or undeprecate the named <var>command</var>. Deprecated commands |
| cause <span class="sc">gdb</span> 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, <span class="sc">gdb</span> will mention |
| the replacement as part of the warning. |
| |
| <p><a name="index-maint-dump_002dme-3337"></a><br><dt><code>maint dump-me</code><dd><a name="index-g_t_0040code_007bSIGQUIT_007d-signal_002c-dump-core-of-_0040value_007bGDBN_007d-3338"></a>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-3339"></a><a name="index-maint-internal_002dwarning-3340"></a><a name="index-maint-demangler_002dwarning-3341"></a><a name="index-demangler-crashes-3342"></a><br><dt><code>maint internal-error </code><span class="roman">[</span><var>message-text</var><span class="roman">]</span><dt><code>maint internal-warning </code><span class="roman">[</span><var>message-text</var><span class="roman">]</span><dt><code>maint demangler-warning </code><span class="roman">[</span><var>message-text</var><span class="roman">]</span><dd> |
| Cause <span class="sc">gdb</span> 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 <span class="sc">gdb</span> or (for <code>internal_error</code> |
| and <code>internal_warning</code>) create a core file of the current |
| <span class="sc">gdb</span> session. |
| |
| <p>These commands take an optional parameter <var>message-text</var> that is |
| used as the text of the error or warning message. |
| |
| <p>Here's an example of using <code>internal-error</code>: |
| |
| <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> |
| <p><a name="index-g_t_0040value_007bGDBN_007d-internal-error-3343"></a><a name="index-internal-errors_002c-control-of-_0040value_007bGDBN_007d-behavior-3344"></a><a name="index-demangler-crashes-3345"></a> |
| <a name="index-maint-set-internal_002derror-3346"></a><a name="index-maint-show-internal_002derror-3347"></a><a name="index-maint-set-internal_002dwarning-3348"></a><a name="index-maint-show-internal_002dwarning-3349"></a><a name="index-maint-set-demangler_002dwarning-3350"></a><a name="index-maint-show-demangler_002dwarning-3351"></a><br><dt><code>maint set internal-error </code><var>action</var><code> [ask|yes|no]</code><dt><code>maint show internal-error </code><var>action</var><dt><code>maint set internal-warning </code><var>action</var><code> [ask|yes|no]</code><dt><code>maint show internal-warning </code><var>action</var><dt><code>maint set demangler-warning </code><var>action</var><code> [ask|yes|no]</code><dt><code>maint show demangler-warning </code><var>action</var><dd>When <span class="sc">gdb</span> reports an internal problem (error or warning) it |
| gives the user the opportunity to both quit <span class="sc">gdb</span> and create a |
| core file of the current <span class="sc">gdb</span> session. These commands let you |
| override the default behaviour for each particular <var>action</var>, |
| described in the table below. |
| |
| <dl> |
| <dt>‘<samp><span class="samp">quit</span></samp>’<dd>You can specify that <span class="sc">gdb</span> should always (yes) or never (no) |
| quit. The default is to ask the user what to do. |
| |
| <br><dt>‘<samp><span class="samp">corefile</span></samp>’<dd>You can specify that <span class="sc">gdb</span> 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. |
| </dl> |
| |
| <p><a name="index-maint-packet-3352"></a><br><dt><code>maint packet </code><var>text</var><dd>If <span class="sc">gdb</span> 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. <span class="sc">gdb</span> supplies the initial |
| ‘<samp><span class="samp">$</span></samp>’ character, the terminating ‘<samp><span class="samp">#</span></samp>’ character, and the |
| checksum. |
| |
| <p><a name="index-maint-print-architecture-3353"></a><br><dt><code>maint print architecture </code><span class="roman">[</span><var>file</var><span class="roman">]</span><dd>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-_0040r_007b_005b_007d_0040var_007bfile_007d_0040r_007b_005d_007d-3354"></a><br><dt><code>maint print c-tdesc</code><dd>Print the target description (see <a href="Target-Descriptions.html#Target-Descriptions">Target Descriptions</a>) as |
| a C source file. By default, the target description is for the current |
| target, but if the optional argument <var>file</var> is provided, that file |
| is used to produce the description. The <var>file</var> should be an XML |
| document, of the form described in <a href="Target-Description-Format.html#Target-Description-Format">Target Description Format</a>. |
| The created source file is built into <span class="sc">gdb</span> when <span class="sc">gdb</span> is |
| built again. This command is used by developers after they add or |
| modify XML target descriptions. |
| |
| <p><a name="index-maint-check-xml_002ddescriptions-3355"></a><br><dt><code>maint check xml-descriptions </code><var>dir</var><dd>Check that the target descriptions dynamically created by <span class="sc">gdb</span> |
| equal the descriptions created from XML files found in <var>dir</var>. |
| |
| <p><a name="maint-check-libthread_002ddb"></a><a name="index-maint-check-libthread_002ddb-3356"></a><br><dt><code>maint check libthread-db</code><dd>Run integrity checks on the current inferior's thread debugging |
| library. This exercises all <code>libthread_db</code> functionality used by |
| <span class="sc">gdb</span> on GNU/Linux systems, and by extension also exercises the |
| <code>proc_service</code> functions provided by <span class="sc">gdb</span> that |
| <code>libthread_db</code> uses. Note that parts of the test may be skipped |
| on some platforms when debugging core files. |
| |
| <p><a name="index-maint-print-dummy_002dframes-3357"></a><br><dt><code>maint print dummy-frames</code><dd>Prints the contents of <span class="sc">gdb</span>'s internal dummy-frame stack. |
| |
| <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> |
| <p>Takes an optional file parameter. |
| |
| <p><a name="index-maint-print-registers-3358"></a><a name="index-maint-print-raw_002dregisters-3359"></a><a name="index-maint-print-cooked_002dregisters-3360"></a><a name="index-maint-print-register_002dgroups-3361"></a><a name="index-maint-print-remote_002dregisters-3362"></a><br><dt><code>maint print registers </code><span class="roman">[</span><var>file</var><span class="roman">]</span><dt><code>maint print raw-registers </code><span class="roman">[</span><var>file</var><span class="roman">]</span><dt><code>maint print cooked-registers </code><span class="roman">[</span><var>file</var><span class="roman">]</span><dt><code>maint print register-groups </code><span class="roman">[</span><var>file</var><span class="roman">]</span><dt><code>maint print remote-registers </code><span class="roman">[</span><var>file</var><span class="roman">]</span><dd>Print <span class="sc">gdb</span>'s internal register data structures. |
| |
| <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>These commands take an optional parameter, a file name to which to |
| write the information. |
| |
| <p><a name="index-maint-print-reggroups-3363"></a><br><dt><code>maint print reggroups </code><span class="roman">[</span><var>file</var><span class="roman">]</span><dd>Print <span class="sc">gdb</span>'s internal register group data structures. The |
| optional argument <var>file</var> tells to what file to write the |
| information. |
| |
| <p>The register groups info looks like this: |
| |
| <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> |
| <p><a name="index-flushregs-3364"></a><br><dt><code>flushregs</code><dd>This command forces <span class="sc">gdb</span> to flush its internal register cache. |
| |
| <p><a name="index-maint-print-objfiles-3365"></a><a name="index-info-for-known-object-files-3366"></a><br><dt><code>maint print objfiles </code><span class="roman">[</span><var>regexp</var><span class="roman">]</span><dd>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-3367"></a><a name="index-user-registers-3368"></a><br><dt><code>maint print user-registers</code><dd>List all currently available <dfn>user registers</dfn>. 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="standard-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-3369"></a><a name="index-info-for-known-_002edebug_005fgdb_005fscripts_002dloaded-scripts-3370"></a><br><dt><code>maint print section-scripts [</code><var>regexp</var><code>]</code><dd>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-3371"></a><a name="index-bcache-statistics-3372"></a><br><dt><code>maint print statistics</code><dd>This command prints, for each object file in the program, various data |
| about that object file followed by the byte cache (<dfn>bcache</dfn>) |
| 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-3373"></a><a name="index-target-stack-description-3374"></a><br><dt><code>maint print target-stack</code><dd>A <dfn>target</dfn> is an interface between the debugger and a particular |
| kind of file or process. Targets can be stacked in <dfn>strata</dfn>, |
| 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>This command prints a short description of each layer that was pushed on |
| the <dfn>target stack</dfn>, starting from the top layer down to the bottom one. |
| |
| <p><a name="index-maint-print-type-3375"></a><a name="index-type-chain-of-a-data-type-3376"></a><br><dt><code>maint print type </code><var>expr</var><dd>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 <span class="sc">gdb</span>'s |
| data structures, including its flags and contained types. |
| |
| <p><a name="index-maint-selftest-3377"></a><a name="index-self-tests-3378"></a><br><dt><code>maint selftest </code><span class="roman">[</span><var>filter</var><span class="roman">]</span><dd>Run any self tests that were compiled in to <span class="sc">gdb</span>. This will |
| print a message showing how many tests were run, and how many failed. |
| If a <var>filter</var> is passed, only the tests with <var>filter</var> in their |
| name will by ran. |
| |
| <p><a name="index-g_t_0022maint-info-selftests_0022-3379"></a><a name="index-self-tests-3380"></a><br><dt><code>maint info selftests</code><dd>List the selftests compiled in to <span class="sc">gdb</span>. |
| |
| <p><a name="index-maint-set-dwarf-always_002ddisassemble-3381"></a><a name="index-maint-show-dwarf-always_002ddisassemble-3382"></a><br><dt><code>maint set dwarf always-disassemble</code><br><dt><code>maint show dwarf always-disassemble</code><dd>Control the behavior of <code>info address</code> when using DWARF debugging |
| information. |
| |
| <p>The default is <code>off</code>, which means that <span class="sc">gdb</span> should try to |
| describe a variable's location in an easily readable format. When |
| <code>on</code>, <span class="sc">gdb</span> will instead display the DWARF location |
| expression in an assembly-like format. Note that some locations are |
| too complex for <span class="sc">gdb</span> to describe simply; in this case you will |
| always see the disassembly form. |
| |
| <p>Here is an example of the resulting disassembly: |
| |
| <pre class="smallexample"> (gdb) info addr argc |
| Symbol "argc" is a complex DWARF expression: |
| 1: DW_OP_fbreg 0 |
| </pre> |
| <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-3383"></a><a name="index-maint-show-dwarf-max_002dcache_002dage-3384"></a><br><dt><code>maint set dwarf max-cache-age</code><dt><code>maint show dwarf max-cache-age</code><dd>Control the DWARF compilation unit cache. |
| |
| <p><a name="index-DWARF-compilation-units-cache-3385"></a>In object files with inter-compilation-unit references, such as those |
| produced by the GCC option ‘<samp><span class="samp">-feliminate-dwarf2-dups</span></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 <span class="sc">gdb</span> startup, but reduce memory consumption. |
| |
| <p><a name="index-maint-set-dwarf-unwinders-3386"></a><a name="index-maint-show-dwarf-unwinders-3387"></a><br><dt><code>maint set dwarf unwinders</code><dt><code>maint show dwarf unwinders</code><dd>Control use of the DWARF frame unwinders. |
| |
| <p><a name="index-DWARF-frame-unwinders-3388"></a>Many targets that support DWARF debugging use <span class="sc">gdb</span>'s DWARF |
| frame unwinders to build the backtrace. Many of these targets will |
| also have a second mechanism for building the backtrace for use in |
| cases where DWARF information is not available, this second mechanism |
| is often an analysis of a function's prologue. |
| |
| <p>In order to extend testing coverage of the second level stack |
| unwinding mechanisms it is helpful to be able to disable the DWARF |
| stack unwinders, this can be done with this switch. |
| |
| <p>In normal use of <span class="sc">gdb</span> disabling the DWARF unwinders is not |
| advisable, there are cases that are better handled through DWARF than |
| prologue analysis, and the debug experience is likely to be better |
| with the DWARF frame unwinders enabled. |
| |
| <p>If DWARF frame unwinders are not supported for a particular target |
| architecture, then enabling this flag does not cause them to be used. |
| <a name="index-maint-set-profile-3389"></a><a name="index-maint-show-profile-3390"></a><a name="index-profiling-GDB-3391"></a><br><dt><code>maint set profile</code><dt><code>maint show profile</code><dd>Control profiling of <span class="sc">gdb</span>. |
| |
| <p>Profiling will be disabled until you use the ‘<samp><span class="samp">maint set profile</span></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 <span class="sc">gdb</span>, the results will be written to a log file. Remember that |
| if you use profiling, <span class="sc">gdb</span> will overwrite the profiling log file |
| (often called <samp><span class="file">gmon.out</span></samp>). If you have a record of important profiling |
| data in a <samp><span class="file">gmon.out</span></samp> file, be sure to move it to a safe location. |
| |
| <p>Configuring with ‘<samp><span class="samp">--enable-profiling</span></samp>’ arranges for <span class="sc">gdb</span> to be |
| compiled with the ‘<samp><span class="samp">-pg</span></samp>’ compiler option. |
| |
| <p><a name="index-maint-set-show_002ddebug_002dregs-3392"></a><a name="index-maint-show-show_002ddebug_002dregs-3393"></a><a name="index-hardware-debug-registers-3394"></a><br><dt><code>maint set show-debug-regs</code><dt><code>maint show show-debug-regs</code><dd>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 <span class="sc">gdb</span> 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-3395"></a><a name="index-maint-show-show_002dall_002dtib-3396"></a><br><dt><code>maint set show-all-tib</code><dt><code>maint show show-all-tib</code><dd>Control whether to show all non zero areas within a 1k block starting |
| at thread local base, when using the ‘<samp><span class="samp">info w32 thread-information-block</span></samp>’ |
| command. |
| |
| <p><a name="index-maint-set-target_002dasync-3397"></a><a name="index-maint-show-target_002dasync-3398"></a><br><dt><code>maint set target-async</code><dt><code>maint show target-async</code><dd>This controls whether <span class="sc">gdb</span> 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-target_002dnon_002dstop-_0040var_007bmode_007d-_005bon_007coff_007cauto_005d-3399"></a><a name="index-maint-show-target_002dnon_002dstop-3400"></a><br><dt><code>maint set target-non-stop</code><dt><code>maint show target-non-stop</code><dd> |
| This controls whether <span class="sc">gdb</span> targets always operate in non-stop |
| mode even if <code>set non-stop</code> is <code>off</code> (see <a href="Non_002dStop-Mode.html#Non_002dStop-Mode">Non-Stop Mode</a>). The default is <code>auto</code>, meaning non-stop mode is enabled |
| if supported by the target. |
| |
| <dl> |
| <dt><code>maint set target-non-stop auto</code><dd>This is the default mode. <span class="sc">gdb</span> controls the target in |
| non-stop mode if the target supports it. |
| |
| <br><dt><code>maint set target-non-stop on</code><dd><span class="sc">gdb</span> controls the target in non-stop mode even if the target |
| does not indicate support. |
| |
| <br><dt><code>maint set target-non-stop off</code><dd><span class="sc">gdb</span> does not control the target in non-stop mode even if the |
| target supports it. |
| </dl> |
| |
| <p><a name="index-maint-set-per_002dcommand-3401"></a><a name="index-maint-show-per_002dcommand-3402"></a><br><dt><code>maint set per-command</code><dt><code>maint show per-command</code><dd><a name="index-resources-used-by-commands-3403"></a> |
| <span class="sc">gdb</span> can display the resources used by each command. |
| This is useful in debugging performance problems. |
| |
| <dl> |
| <dt><code>maint set per-command space [on|off]</code><dt><code>maint show per-command space</code><dd>Enable or disable the printing of the memory used by GDB for each command. |
| If enabled, <span class="sc">gdb</span> will display how much memory each command |
| took, following the command's own output. |
| This can also be requested by invoking <span class="sc">gdb</span> with the |
| <samp><span class="option">--statistics</span></samp> command-line switch (see <a href="Mode-Options.html#Mode-Options">Mode Options</a>). |
| |
| <br><dt><code>maint set per-command time [on|off]</code><dt><code>maint show per-command time</code><dd>Enable or disable the printing of the execution time of <span class="sc">gdb</span> |
| for each command. |
| If enabled, <span class="sc">gdb</span> 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 <span class="sc">gdb</span> 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 <span class="sc">gdb</span> and how much time was |
| spent by the program been debugged. |
| This can also be requested by invoking <span class="sc">gdb</span> with the |
| <samp><span class="option">--statistics</span></samp> command-line switch (see <a href="Mode-Options.html#Mode-Options">Mode Options</a>). |
| |
| <br><dt><code>maint set per-command symtab [on|off]</code><dt><code>maint show per-command symtab</code><dd>Enable or disable the printing of basic symbol table statistics |
| for each command. |
| If enabled, <span class="sc">gdb</span> will display the following information: |
| |
| <ol type=a start=1> |
| <li>number of symbol tables |
| <li>number of primary symbol tables |
| <li>number of blocks in the blockvector |
| </ol> |
| </dl> |
| |
| <p><a name="index-maint-set-check_002dlibthread_002ddb-3404"></a><a name="index-maint-show-check_002dlibthread_002ddb-3405"></a><br><dt><code>maint set check-libthread-db [on|off]</code><dt><code>maint show check-libthread-db</code><dd>Control whether <span class="sc">gdb</span> should run integrity checks on inferior |
| specific thread debugging libraries as they are loaded. The default |
| is not to perform such checks. If any check fails <span class="sc">gdb</span> will |
| unload the library and continue searching for a suitable candidate as |
| described in <a href="set-libthread_002ddb_002dsearch_002dpath.html#set-libthread_002ddb_002dsearch_002dpath">set libthread-db-search-path</a>. For more information |
| about the tests, see <a href="maint-check-libthread_002ddb.html#maint-check-libthread_002ddb">maint check libthread-db</a>. |
| |
| <p><a name="index-maint-space-3406"></a><a name="index-memory-used-by-commands-3407"></a><br><dt><code>maint space </code><var>value</var><dd>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-3408"></a><a name="index-time-of-command-execution-3409"></a><br><dt><code>maint time </code><var>value</var><dd>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-3410"></a><br><dt><code>maint translate-address </code><span class="roman">[</span><var>section</var><span class="roman">]</span> <var>addr</var><dd>Find the symbol stored at the location specified by the address |
| <var>addr</var> and an optional section name <var>section</var>. If found, |
| <span class="sc">gdb</span> 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>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. |
| |
| </dl> |
| |
| <p>The following command is useful for non-interactive invocations of |
| <span class="sc">gdb</span>, such as in the test suite. |
| |
| <dl> |
| <dt><code>set watchdog </code><var>nsec</var><dd><a name="index-set-watchdog-3411"></a><a name="index-watchdog-timer-3412"></a><a name="index-timeout-for-commands-3413"></a>Set the maximum number of seconds <span class="sc">gdb</span> will wait for the |
| target operation to finish. If this time expires, <span class="sc">gdb</span> |
| reports and error and the command is aborted. |
| |
| <br><dt><code>show watchdog</code><dd>Show the current setting of the target wait timeout. |
| </dl> |
| |
| </body></html> |
| |